diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 4691fb4cbfc10058e5dda7d148de23c4aee055e9..a3f46bcfc859bff53d627d21383576c8fd0a237d 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -483,8 +483,6 @@ def other_scheduled_actions end def pages_generator? - return Gitlab.config.pages.enabled && name == 'pages' unless ::Feature.enabled?(:customizable_pages_job_name, project) - return false unless Gitlab.config.pages.enabled return true if options[:pages].is_a?(Hash) || options[:pages] == true diff --git a/config/feature_flags/gitlab_com_derisk/customizable_pages_job_name.yml b/config/feature_flags/gitlab_com_derisk/customizable_pages_job_name.yml deleted file mode 100644 index 677e54574302929d136454cffb4891fc9ebfeeb8..0000000000000000000000000000000000000000 --- a/config/feature_flags/gitlab_com_derisk/customizable_pages_job_name.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: customizable_pages_job_name -feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/232505 -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166731 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/497981 -milestone: '17.5' -group: group::knowledge -type: gitlab_com_derisk -default_enabled: false diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index 5e6e3b85f1fd9d9eff44f6dc05c38d54141f9dba..f4898e6ab3d183ff7cf9512fc27eb9430dc28cd7 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -415,10 +415,7 @@ merge request is closed or merged. ## User defined job names > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/232505) in GitLab 17.5 with a flag `customizable_pages_job_name`, disabled by default. - -Historically, the pages deploy job needed to be named `pages` in order to -trigger a pages deployment. With the `pages` setting, this is no longer -necessary. +> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169095) in GitLab 17.6. To trigger a pages deployment from any job, include the `pages` property in the job definition. It can either be a hash or simply a boolean set to `true` diff --git a/lib/gitlab/ci/config/entry/job.rb b/lib/gitlab/ci/config/entry/job.rb index dbdc820f2fd99d200aca5983a6dcec2ea6c77c0b..2454fdfdd6af8781e04cf125b70f71e1c14ca3ec 100644 --- a/lib/gitlab/ci/config/entry/job.rb +++ b/lib/gitlab/ci/config/entry/job.rb @@ -57,11 +57,6 @@ class Job < ::Gitlab::Config::Entry::Node validates :publish, absence: { message: "can only be used within a `pages` job" }, unless: -> { config.is_a?(Hash) && pages_job? } - - # The below validation should be removed entirely with the FF cleanup - validates :pages, - absence: { message: "can only be used within a `pages` job" }, - unless: -> { (config.is_a?(Hash) && pages_job?) || ::Gitlab::Ci::Config::FeatureFlags.enabled?(:customizable_pages_job_name) } end entry :before_script, Entry::Commands, @@ -201,8 +196,6 @@ def ignored? end def pages_job? - return name == :pages unless ::Gitlab::Ci::Config::FeatureFlags.enabled?(:customizable_pages_job_name) - return true if config[:pages].present? name == :pages && config[:pages] != false # legacy behavior, overridable with `pages: false` diff --git a/spec/lib/gitlab/ci/config/entry/job_spec.rb b/spec/lib/gitlab/ci/config/entry/job_spec.rb index 0c0b24436ab030335b15193d2d5d153ad8a8297b..0bb66bb90761c0a0aae83af0f27c573dbfdb6f62 100644 --- a/spec/lib/gitlab/ci/config/entry/job_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/job_spec.rb @@ -738,10 +738,6 @@ end context 'when job is a pages job with a custom name', feature_category: :pages do - before do - stub_feature_flags(customizable_pages_job_name: true) - end - let(:name) { :rspec } context 'when pages entry is a boolean' do @@ -771,58 +767,25 @@ end describe '#pages_job?', :aggregate_failures, feature_category: :pages do - context 'with customizable_pages_job_name feature flag disabled' do - before do - stub_feature_flags(customizable_pages_job_name: false) - end - - where(:name, :config, :result) do - :pages | {} | true - :pages | { pages: false } | true - :pages | { pages: true } | true - :pages | { pages: nil } | true - :pages | { pages: { path_prefix: 'foo' } } | true - :'pages:staging' | {} | false - :'something:pages:else' | {} | false - :'something-else' | {} | false - :'something-else' | { pages: true } | false - :'something-else' | { pages: { path_prefix: 'foo' } } | false - :'something-else' | { pages: false } | false - :'something-else' | { pages: nil } | false - end - - with_them do - subject { described_class.new(config, name: name).pages_job? } - - it { is_expected.to eq(result) } - end + where(:name, :config, :result) do + :pages | {} | true + :pages | { pages: false } | false + :pages | { pages: true } | true + :pages | { pages: nil } | true + :pages | { pages: { path_prefix: 'foo' } } | true + :'pages:staging' | {} | false + :'something:pages:else' | {} | false + :'something-else' | {} | false + :'something-else' | { pages: true } | true + :'something-else' | { pages: { path_prefix: 'foo' } } | true + :'something-else' | { pages: false } | false + :'something-else' | { pages: nil } | false end - context 'with customizable_pages_job_name feature flag enabled' do - before do - stub_feature_flags(customizable_pages_job_name: true) - end + with_them do + subject { described_class.new(config, name: name).pages_job? } - where(:name, :config, :result) do - :pages | {} | true - :pages | { pages: false } | false - :pages | { pages: true } | true - :pages | { pages: nil } | true - :pages | { pages: { path_prefix: 'foo' } } | true - :'pages:staging' | {} | false - :'something:pages:else' | {} | false - :'something-else' | {} | false - :'something-else' | { pages: true } | true - :'something-else' | { pages: { path_prefix: 'foo' } } | true - :'something-else' | { pages: false } | false - :'something-else' | { pages: nil } | false - end - - with_them do - subject { described_class.new(config, name: name).pages_job? } - - it { is_expected.to eq(result) } - end + it { is_expected.to eq(result) } end end diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 1f2e6d4889d9c8deb3b699b6e2b02ff7b2ba76e1..ee3b01061e9be823c4d2ed1e8ea9fc0596c9071a 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -4332,54 +4332,27 @@ def run_job_without_exception end describe '#pages_generator?', feature_category: :pages do - context 'with customizable_pages_job_name feature flag enabled' do - where(:name, :pages_config, :enabled, :result) do - 'foo' | nil | false | false - 'pages' | nil | false | false - 'pages:preview' | nil | true | false - 'pages' | nil | true | true - 'foo' | true | true | true - 'foo' | { expire_in: '1 day' } | true | true - 'foo' | false | true | false - 'pages' | false | true | false - end - - with_them do - before do - stub_pages_setting(enabled: enabled) - build.update!(name: name, options: { pages: pages_config }) - stub_feature_flags(customizable_pages_job_name: true) - end - - subject { build.pages_generator? } - - it { is_expected.to eq(result) } - end + where(:name, :pages_config, :enabled, :result) do + 'foo' | nil | false | false + 'pages' | nil | false | false + 'pages:preview' | nil | true | false + 'pages' | nil | true | true + 'foo' | true | true | true + 'foo' | { expire_in: '1 day' } | true | true + 'foo' | false | true | false + 'pages' | false | true | false end - context 'with customizable_pages_job_name feature flag disabled' do - where(:name, :pages_config, :enabled, :result) do - 'foo' | nil | false | false - 'pages' | nil | false | false - 'pages:preview' | nil | true | false - 'pages' | nil | true | true - 'foo' | true | true | false - 'foo' | { expire_in: '1 day' } | true | false - 'foo' | false | true | false - 'pages' | false | true | true + with_them do + before do + stub_pages_setting(enabled: enabled) + build.update!(name: name, options: { pages: pages_config }) + stub_feature_flags(customizable_pages_job_name: true) end - with_them do - before do - stub_feature_flags(customizable_pages_job_name: false) - stub_pages_setting(enabled: enabled) - build.update!(name: name, options: { pages: pages_config }) - end + subject { build.pages_generator? } - subject { build.pages_generator? } - - it { is_expected.to eq(result) } - end + it { is_expected.to eq(result) } end end