diff --git a/ee/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb b/ee/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb index 1fd3780c24ce8c9ab260dcf419668b90a40dc83d..8bfa4984c7ddbed948ac1ffea28dd7f073eb8eef 100644 --- a/ee/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb +++ b/ee/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules.rb @@ -12,7 +12,7 @@ module EvaluateWorkflowRules override :force_pipeline_creation_to_continue? def force_pipeline_creation_to_continue? - command.execution_policy_pipelines.present? + command.pipeline_execution_policies.present? end end end diff --git a/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs.rb b/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs.rb index 2bf70ffff4ff84f9cddb43c96567ea41d2a3415a..39594d1d8fdab77b35d06dd53214e04fd0306543 100644 --- a/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs.rb +++ b/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs.rb @@ -22,6 +22,8 @@ module FindConfigs include ::Gitlab::Utils::StrongMemoize extend ::Gitlab::Utils::Override + PipelineExecutionPolicy = Struct.new(:pipeline) + override :perform! def perform! return if ::Feature.disabled?(:pipeline_execution_policy_type, project.group) @@ -29,12 +31,12 @@ def perform! return if pipeline.dangling? return if pipeline_execution_policy_contents.empty? - command.execution_policy_pipelines = [] + command.pipeline_execution_policies = [] pipeline_execution_policy_contents.each do |content| response = create_pipeline(content) if response.success? - command.execution_policy_pipelines << response.payload + command.pipeline_execution_policies << PipelineExecutionPolicy.new(response.payload) elsif pipeline_filtered_by_rules?(response.payload) # no-op: we ignore empty pipelines else diff --git a/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs.rb b/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs.rb index dfc8de36e3b007700ec6ece98cb75ba139b5c27b..afef25d829c6b8cdcec334e400d1519982e32302 100644 --- a/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs.rb +++ b/ee/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs.rb @@ -17,7 +17,7 @@ module PipelineExecutionPolicies module MergeJobs def perform! return if ::Feature.disabled?(:pipeline_execution_policy_type, project.group) - return if command.execution_policy_mode? || command.execution_policy_pipelines.blank? + return if command.execution_policy_mode? || command.pipeline_execution_policies.blank? clear_project_pipeline merge_policy_jobs @@ -38,7 +38,7 @@ def clear_project_pipeline def merge_policy_jobs ::Gitlab::Ci::Pipeline::PipelineExecutionPolicies::JobsMerger .new(pipeline: pipeline, - execution_policy_pipelines: command.execution_policy_pipelines, + pipeline_execution_policies: command.pipeline_execution_policies, # `yaml_processor_result` contains the declared project stages, even if they are unused. declared_stages: command.yaml_processor_result.stages ) diff --git a/ee/lib/ee/gitlab/ci/pipeline/chain/skip.rb b/ee/lib/ee/gitlab/ci/pipeline/chain/skip.rb index 167184dca7d1b77ff02fa5f6943926fc3bc9db53..0a28f7388adee066152b1ea18c9e2f35c5020489 100644 --- a/ee/lib/ee/gitlab/ci/pipeline/chain/skip.rb +++ b/ee/lib/ee/gitlab/ci/pipeline/chain/skip.rb @@ -13,7 +13,7 @@ module Skip override :skipped? def skipped? return super if ::Feature.disabled?(:pipeline_execution_policy_type, project.group) || - command.execution_policy_pipelines.blank? + command.pipeline_execution_policies.blank? # We don't allow pipeline to be skipped if it has to run execution policy pipelines false diff --git a/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger.rb b/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger.rb index 81827aeff4cc1218b52cc75e3ea5d16a1b8c07e0..14441811ddcd71f0b5073af0e14807144b4ce505 100644 --- a/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger.rb +++ b/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger.rb @@ -13,25 +13,25 @@ module PipelineExecutionPolicies class JobsMerger include ::Gitlab::Utils::StrongMemoize - def initialize(pipeline:, execution_policy_pipelines:, declared_stages:) + def initialize(pipeline:, pipeline_execution_policies:, declared_stages:) @pipeline = pipeline - @execution_policy_pipelines = execution_policy_pipelines + @pipeline_execution_policies = pipeline_execution_policies @declared_stages = declared_stages @pipeline_stages_by_name = pipeline.stages.index_by(&:name) end def execute - execution_policy_pipelines.each do |policy_pipeline_config| + pipeline_execution_policies.each do |policy_pipeline_config| inject_jobs_from(policy_pipeline_config) end end private - attr_reader :pipeline, :execution_policy_pipelines, :declared_stages, :pipeline_stages_by_name + attr_reader :pipeline, :pipeline_execution_policies, :declared_stages, :pipeline_stages_by_name def inject_jobs_from(policy_pipeline) - policy_pipeline.stages.each do |policy_stage| + policy_pipeline.pipeline.stages.each do |policy_stage| ensure_stage_exists(policy_stage) matching_pipeline_stage = pipeline_stages_by_name[policy_stage.name] diff --git a/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context.rb b/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context.rb index 3d836451066704ceb151b269284b589c4c3709d0..a945d64bdfff09ea04661cf367ef2a2a9b5d7aa8 100644 --- a/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context.rb +++ b/ee/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context.rb @@ -15,20 +15,20 @@ def execution_policy_mode? command&.execution_policy_mode? || false end - def has_execution_policy_pipelines? - command&.execution_policy_pipelines.present? || false + def has_pipeline_execution_policies? + command&.pipeline_execution_policies.present? || false end # We inject reserved policy stages only when; # - execution_policy_mode: This is a temporary pipeline creation mode. # We need to inject these stages for the validation because the policy may use them. - # - has_execution_policy_pipelines?: This is the actual pipeline creation mode. + # - has_pipeline_execution_policies?: This is the actual pipeline creation mode. # It means that the result pipeline will have PEPs. # We need to inject these stages because some of the policies may use them. def inject_policy_reserved_stages? return false if ::Feature.disabled?(:pipeline_execution_policy_type, project&.group) - execution_policy_mode? || has_execution_policy_pipelines? + execution_policy_mode? || has_pipeline_execution_policies? end def valid_stage?(stage) diff --git a/ee/lib/gitlab/ci/project_config/pipeline_execution_policy_forced.rb b/ee/lib/gitlab/ci/project_config/pipeline_execution_policy_forced.rb index 944f9503bb4128a81622181751eb96770991e7cb..a2242a5c528aff52b77fe308e10cfa3a231e99be 100644 --- a/ee/lib/gitlab/ci/project_config/pipeline_execution_policy_forced.rb +++ b/ee/lib/gitlab/ci/project_config/pipeline_execution_policy_forced.rb @@ -22,7 +22,7 @@ class PipelineExecutionPolicyForced < Gitlab::Ci::ProjectConfig::Source def content return if ::Feature.disabled?(:pipeline_execution_policy_type, @project.group) - return unless @has_execution_policy_pipelines + return unless @has_pipeline_execution_policies # Create a dummy job to ensure that project pipeline gets created. # Pipeline execution policy jobs will be merged onto the project pipeline. diff --git a/ee/spec/factories/ci/pipeline_execution_policy.rb b/ee/spec/factories/ci/pipeline_execution_policy.rb new file mode 100644 index 0000000000000000000000000000000000000000..0e65e099fb87da09015a38c28f764fc53f96191c --- /dev/null +++ b/ee/spec/factories/ci/pipeline_execution_policy.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory( + :ci_pipeline_execution_policy, + class: '::Gitlab::Ci::Pipeline::Chain::PipelineExecutionPolicies::FindConfigs::PipelineExecutionPolicy' + ) do + pipeline factory: :ci_empty_pipeline + end +end diff --git a/ee/spec/lib/ee/gitlab/ci/config_spec.rb b/ee/spec/lib/ee/gitlab/ci/config_spec.rb index 5c7ca99ee72ff9535fde73f58fee3e4b32cee204..e5edd3eee434add10af95a2fb2840ed5fd5b1780 100644 --- a/ee/spec/lib/ee/gitlab/ci/config_spec.rb +++ b/ee/spec/lib/ee/gitlab/ci/config_spec.rb @@ -168,8 +168,8 @@ it_behaves_like 'injects reserved policy stages' end - context 'when execution_policy_pipelines are present' do - let(:execution_policy_pipelines) { build_list(:ci_empty_pipeline, 2) } + context 'when pipeline_execution_policies are present' do + let(:pipeline_execution_policies) { build_list(:ci_pipeline_execution_policy, 2) } it_behaves_like 'injects reserved policy stages' end diff --git a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb index 817459a83d6bc23e178eb06b0922b4576b12055b..fb2490547d165d5c724bc9a50d14ab26863931c1 100644 --- a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb +++ b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb @@ -7,12 +7,12 @@ let_it_be(:user) { create(:user) } let(:pipeline) { build(:ci_pipeline, project: project) } - let(:execution_policy_pipelines) { nil } + let(:pipeline_execution_policies) { nil } let(:command) do Gitlab::Ci::Pipeline::Chain::Command.new( project: project, current_user: user, - execution_policy_pipelines: execution_policy_pipelines + pipeline_execution_policies: pipeline_execution_policies ) end @@ -101,8 +101,10 @@ end end - context 'when execution_policy_pipelines are present' do - let(:execution_policy_pipelines) { [build(:ci_pipeline, project: project, user: user)] } + context 'when pipeline_execution_policies are present' do + let(:pipeline_execution_policies) do + [build(:ci_pipeline_execution_policy, pipeline: build(:ci_pipeline, project: project, user: user))] + end before do step.perform! diff --git a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs_spec.rb b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs_spec.rb index 2c88b58e8078bd641ad91455a80e8717cbcceec2..d2f74079a449e081e68b9f3a830d966031ab292c 100644 --- a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs_spec.rb +++ b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/find_configs_spec.rb @@ -39,18 +39,18 @@ end describe '#perform!' do - it 'sets execution_policy_pipelines' do + it 'sets pipeline_execution_policies' do step.perform! - expect(command.execution_policy_pipelines).to be_a(Array) - expect(command.execution_policy_pipelines.size).to eq(2) + expect(command.pipeline_execution_policies).to be_a(Array) + expect(command.pipeline_execution_policies.size).to eq(2) end it 'passes pipeline source to execution policy pipelines' do step.perform! - command.execution_policy_pipelines.each do |pipeline| - expect(pipeline.source).to eq(source) + command.pipeline_execution_policies.each do |policy| + expect(policy.pipeline.source).to eq(source) end end @@ -73,7 +73,7 @@ it 'passes the merge request to the policy pipelines' do step.perform! - expect(command.execution_policy_pipelines.first.merge_request).to eq(merge_request) + expect(command.pipeline_execution_policies.first.pipeline.merge_request).to eq(merge_request) end end @@ -117,7 +117,7 @@ end it 'ignores the policy pipelines' do - expect(command.execution_policy_pipelines).to be_empty + expect(command.pipeline_execution_policies).to be_empty end end @@ -126,20 +126,20 @@ stub_feature_flags(pipeline_execution_policy_type: false) end - it 'does not set execution_policy_pipelines' do + it 'does not set pipeline_execution_policies' do step.perform! - expect(command.execution_policy_pipelines).to be_nil + expect(command.pipeline_execution_policies).to be_nil end end context 'when running in execution_policy_dry_run' do let(:execution_policy_dry_run) { true } - it 'does not set execution_policy_pipelines' do + it 'does not set pipeline_execution_policies' do step.perform! - expect(command.execution_policy_pipelines).to be_nil + expect(command.pipeline_execution_policies).to be_nil end end @@ -148,10 +148,10 @@ context "when source is #{source}" do let(:source) { source } - it 'does not set execution_policy_pipelines' do + it 'does not set pipeline_execution_policies' do step.perform! - expect(command.execution_policy_pipelines).to be_nil + expect(command.pipeline_execution_policies).to be_nil end end end @@ -160,10 +160,10 @@ context 'when pipeline execution policy configs are empty' do let(:policy_contents) { [] } - it 'does not set execution_policy_pipelines' do + it 'does not set pipeline_execution_policies' do step.perform! - expect(command.execution_policy_pipelines).to be_nil + expect(command.pipeline_execution_policies).to be_nil end end end diff --git a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs_spec.rb b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs_spec.rb index f109bdab7a53e67b6124168481aa7819e7d55b35..2292a646aa0d992d318c6acc025bc286d6fd5bf3 100644 --- a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs_spec.rb +++ b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/pipeline_execution_policies/merge_jobs_spec.rb @@ -9,10 +9,10 @@ let_it_be(:project) { create(:project, :repository, group: group) } let_it_be(:user) { create(:user, developer_of: project) } let(:pipeline) { build(:ci_pipeline, project: project, ref: 'master', user: user) } - let(:execution_policy_pipelines) do + let(:pipeline_execution_policies) do [ - build_mock_policy_pipeline({ 'build' => ['docker'] }), - build_mock_policy_pipeline({ 'test' => ['rspec'] }) + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'build' => ['docker'] })), + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })) ] end @@ -21,7 +21,7 @@ project: project, current_user: user, origin_ref: pipeline.ref, - execution_policy_pipelines: execution_policy_pipelines + pipeline_execution_policies: pipeline_execution_policies ) end @@ -46,7 +46,7 @@ expect(::Gitlab::Ci::Pipeline::PipelineExecutionPolicies::JobsMerger) .to receive(:new).with( pipeline: pipeline, - execution_policy_pipelines: execution_policy_pipelines, + pipeline_execution_policies: pipeline_execution_policies, declared_stages: %w[.pipeline-policy-pre .pre build test deploy .post .pipeline-policy-post] ).and_call_original @@ -69,7 +69,7 @@ expect(::Gitlab::Ci::Pipeline::PipelineExecutionPolicies::JobsMerger) .to receive(:new).with( pipeline: pipeline, - execution_policy_pipelines: execution_policy_pipelines, + pipeline_execution_policies: pipeline_execution_policies, declared_stages: %w[.pipeline-policy-pre .pre pre-test test post-test .post .pipeline-policy-post] ).and_call_original @@ -84,7 +84,7 @@ expect(::Gitlab::Ci::Pipeline::PipelineExecutionPolicies::JobsMerger) .to receive(:new).with( pipeline: pipeline, - execution_policy_pipelines: execution_policy_pipelines, + pipeline_execution_policies: pipeline_execution_policies, declared_stages: %w[.pipeline-policy-pre .pre build test deploy .post .pipeline-policy-post] ).and_call_original @@ -110,8 +110,8 @@ end end - context 'when execution_policy_pipelines is not defined' do - let(:execution_policy_pipelines) { nil } + context 'when pipeline_execution_policies is not defined' do + let(:pipeline_execution_policies) { nil } it 'does not change pipeline stages' do expect { run_chain }.not_to change { pipeline.stages } diff --git a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/skip_spec.rb b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/skip_spec.rb index d2921663ddd5be9e42c9959f056d7cee7f5f90ad..ecd6698aef682378721c262a730c975fc075da72 100644 --- a/ee/spec/lib/ee/gitlab/ci/pipeline/chain/skip_spec.rb +++ b/ee/spec/lib/ee/gitlab/ci/pipeline/chain/skip_spec.rb @@ -35,7 +35,7 @@ context 'when pipeline execution policies are present' do before do - command.execution_policy_pipelines = build_list(:ci_empty_pipeline, 1) + command.pipeline_execution_policies = build_list(:ci_pipeline_execution_policy, 1) end it 'does not break the chain' do diff --git a/ee/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb b/ee/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb index a6afe1e5d4ecf3084ec6f12bf2e9aa1d34fcd7a2..fdccacec0957cfda538f6dc94cecb5fd23d99bd2 100644 --- a/ee/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb +++ b/ee/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb @@ -135,7 +135,7 @@ end before do - command.execution_policy_pipelines = build_list(:ci_empty_pipeline, 2) + command.pipeline_execution_policies = build_list(:ci_pipeline_execution_policy, 2) end it 'forces the pipeline creation' do diff --git a/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger_spec.rb b/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger_spec.rb index eafd3fd9632df523a1ce0a6bae7c556c5746c283..233ddf954faced684578ed8efa2d0a82ebf2121a 100644 --- a/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger_spec.rb +++ b/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/jobs_merger_spec.rb @@ -9,17 +9,17 @@ let_it_be(:user) { create(:user, developer_of: project) } let(:declared_stages) { %w[.pipeline-policy-pre .pre build test deploy .post .pipeline-policy-post] } let(:pipeline) { build_mock_pipeline({ 'build' => ['build_job'], 'test' => ['rake'] }, declared_stages) } - let(:execution_policy_pipelines) do + let(:pipeline_execution_policies) do [ - build_mock_policy_pipeline({ 'build' => ['docker'] }), - build_mock_policy_pipeline({ 'test' => ['rspec'] }) + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'build' => ['docker'] })), + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })) ] end subject(:execute) do described_class.new( pipeline: pipeline, - execution_policy_pipelines: execution_policy_pipelines, + pipeline_execution_policies: pipeline_execution_policies, declared_stages: declared_stages ).execute end @@ -47,10 +47,10 @@ context 'with conflicting jobs' do context 'when two policy pipelines have the same job names' do - let(:execution_policy_pipelines) do + let(:pipeline_execution_policies) do [ - build_mock_policy_pipeline({ 'test' => ['rspec'] }), - build_mock_policy_pipeline({ 'test' => ['rspec'] }) + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })), + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })) ] end @@ -64,10 +64,10 @@ end context 'when project and policy pipelines have the same job names' do - let(:execution_policy_pipelines) do + let(:pipeline_execution_policies) do [ - build_mock_policy_pipeline({ 'test' => ['rake'] }), - build_mock_policy_pipeline({ 'test' => ['rspec'] }) + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rake'] })), + build(:ci_pipeline_execution_policy, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })) ] end @@ -85,8 +85,8 @@ context 'when custom policy stage is also defined but not used in the main pipeline' do let(:declared_stages) { %w[.pipeline-policy-pre .pre build test custom .post .pipeline-policy-post] } - let(:execution_policy_pipelines) do - [build_mock_policy_pipeline({ 'custom' => ['docker'] })] + let(:pipeline_execution_policies) do + build_list(:ci_pipeline_execution_policy, 1, pipeline: build_mock_policy_pipeline({ 'custom' => ['docker'] })) end it 'injects the policy job into the custom stage', :aggregate_failures do @@ -101,8 +101,8 @@ end context 'when custom policy stage is not defined in the main pipeline' do - let(:execution_policy_pipelines) do - [build_mock_policy_pipeline({ 'custom' => ['docker'] })] + let(:pipeline_execution_policies) do + build_list(:ci_pipeline_execution_policy, 1, pipeline: build_mock_policy_pipeline({ 'custom' => ['docker'] })) end it 'ignores the stage' do @@ -115,8 +115,8 @@ context 'when the policy stage is defined in a different position than the stage in the main pipeline' do let(:declared_stages) { %w[.pipeline-policy-pre .pre build test .post .pipeline-policy-post] } - let(:execution_policy_pipelines) do - [build_mock_policy_pipeline({ 'test' => ['rspec'] })] + let(:pipeline_execution_policies) do + build_list(:ci_pipeline_execution_policy, 1, pipeline: build_mock_policy_pipeline({ 'test' => ['rspec'] })) end it 'reassigns the position and stage_idx for the jobs to match the main pipeline', :aggregate_failures do @@ -133,8 +133,8 @@ let(:declared_stages) { %w[.pipeline-policy-pre .pre build test deploy .post .pipeline-policy-post] } let(:pipeline) { build_mock_pipeline({ 'deploy' => ['package'] }, declared_stages) } - let(:execution_policy_pipelines) do - [build_mock_policy_pipeline({ 'deploy' => ['docker'] })] + let(:pipeline_execution_policies) do + build_list(:ci_pipeline_execution_policy, 1, pipeline: build_mock_policy_pipeline({ 'deploy' => ['docker'] })) end it 'reassigns the position and stage_idx for policy jobs based on the declared stages', :aggregate_failures do @@ -149,8 +149,8 @@ end end - context 'when execution_policy_pipelines is empty' do - let(:execution_policy_pipelines) { [] } + context 'when pipeline_execution_policies is empty' do + let(:pipeline_execution_policies) { [] } it 'does not change pipeline stages' do expect { execute }.not_to change { pipeline.stages } diff --git a/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context_spec.rb b/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context_spec.rb index bd264a38d061bf0190ff0ad9185fd270fdfaa80d..73c69dc7bad388ab62391ba177eceeb491240235 100644 --- a/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context_spec.rb +++ b/ee/spec/lib/gitlab/ci/pipeline/pipeline_execution_policies/pipeline_context_spec.rb @@ -25,13 +25,13 @@ end end - describe '#has_execution_policy_pipelines?' do - subject { context.has_execution_policy_pipelines? } + describe '#has_pipeline_execution_policies?' do + subject { context.has_pipeline_execution_policies? } it { is_expected.to eq(false) } - context 'with execution_policy_pipelines' do - let(:execution_policy_pipelines) { build_list(:ci_empty_pipeline, 2) } + context 'with pipeline_execution_policies' do + let(:pipeline_execution_policies) { build_list(:ci_pipeline_execution_policy, 2) } it { is_expected.to eq(true) } end @@ -54,8 +54,8 @@ it { is_expected.to eq(true) } end - context 'with execution_policy_pipelines' do - let(:execution_policy_pipelines) { build_list(:ci_empty_pipeline, 2) } + context 'with pipeline_execution_policies' do + let(:pipeline_execution_policies) { build_list(:ci_empty_pipeline, 2) } it { is_expected.to eq(true) } end diff --git a/ee/spec/lib/gitlab/ci/project_config_spec.rb b/ee/spec/lib/gitlab/ci/project_config_spec.rb index ba82210e72242e1e022de395ce8664308e39bcc0..98231d315aabca2592892a9f2fc3b8a690356dd4 100644 --- a/ee/spec/lib/gitlab/ci/project_config_spec.rb +++ b/ee/spec/lib/gitlab/ci/project_config_spec.rb @@ -11,7 +11,7 @@ let(:triggered_for_branch) { true } let(:ref) { 'master' } let(:security_policies) { {} } - let(:has_execution_policy_pipelines) { false } + let(:has_pipeline_execution_policies) { false } let(:content_result) do <<~CICONFIG @@ -31,7 +31,7 @@ pipeline_source_bridge: bridge, triggered_for_branch: triggered_for_branch, ref: ref, - has_execution_policy_pipelines: has_execution_policy_pipelines + has_pipeline_execution_policies: has_pipeline_execution_policies ) end @@ -267,7 +267,7 @@ end end - let(:has_execution_policy_pipelines) { true } + let(:has_pipeline_execution_policies) { true } it_behaves_like 'forces the pipeline creation by including dummy content' diff --git a/ee/spec/lib/gitlab/ci/yaml_processor_spec.rb b/ee/spec/lib/gitlab/ci/yaml_processor_spec.rb index 23f3db57872856c306ff2ec5c48de4f9f15f1b9c..6d318500a59de862a08ab722a15ee9359af87ae0 100644 --- a/ee/spec/lib/gitlab/ci/yaml_processor_spec.rb +++ b/ee/spec/lib/gitlab/ci/yaml_processor_spec.rb @@ -433,8 +433,8 @@ it_behaves_like 'stages including policy reserved stages' end - context 'with execution_policy_pipelines' do - let(:execution_policy_pipelines) { build_list(:ci_empty_pipeline, 2) } + context 'with pipeline_execution_policies' do + let(:pipeline_execution_policies) { build_list(:ci_pipeline_execution_policy, 2) } it_behaves_like 'stages including policy reserved stages' end diff --git a/ee/spec/support/shared_examples/ci/pipeline_execution_policy_shared_examples.rb b/ee/spec/support/shared_examples/ci/pipeline_execution_policy_shared_examples.rb index 602a093f09a06e06cec5ef624042f7664498f926..0a93cd830a17e291a91e934a7ea50d5e669c4273 100644 --- a/ee/spec/support/shared_examples/ci/pipeline_execution_policy_shared_examples.rb +++ b/ee/spec/support/shared_examples/ci/pipeline_execution_policy_shared_examples.rb @@ -9,11 +9,11 @@ Gitlab::Ci::Pipeline::Chain::Command.new( project: project, execution_policy_dry_run: execution_policy_dry_run, - execution_policy_pipelines: execution_policy_pipelines + pipeline_execution_policies: pipeline_execution_policies ) end let_it_be(:project) { create(:project, :repository) } let(:execution_policy_dry_run) { false } - let(:execution_policy_pipelines) { [] } + let(:pipeline_execution_policies) { [] } end diff --git a/lib/gitlab/ci/pipeline/chain/command.rb b/lib/gitlab/ci/pipeline/chain/command.rb index aa3c0f7ecc898ab1bf5c70669505ef6157f45cc9..0acc1b283ae1e003cf9443f91a396781a487aaf7 100644 --- a/lib/gitlab/ci/pipeline/chain/command.rb +++ b/lib/gitlab/ci/pipeline/chain/command.rb @@ -14,7 +14,7 @@ module Chain :chat_data, :allow_mirror_update, :bridge, :content, :dry_run, :logger, :execution_policy_dry_run, # These attributes are set by Chains during processing: :config_content, :yaml_processor_result, :workflow_rules_result, :pipeline_seed, - :pipeline_config, :execution_policy_pipelines + :pipeline_config, :pipeline_execution_policies ) do include Gitlab::Utils::StrongMemoize diff --git a/lib/gitlab/ci/pipeline/chain/config/content.rb b/lib/gitlab/ci/pipeline/chain/config/content.rb index 78ef8cc9bbba6b5ffdfa7387f1b3854275debb08..0f5f72e449ba9fee87aa03368cc4b3d44b05d90c 100644 --- a/lib/gitlab/ci/pipeline/chain/config/content.rb +++ b/lib/gitlab/ci/pipeline/chain/config/content.rb @@ -34,7 +34,7 @@ def pipeline_config pipeline_source: @command.source, pipeline_source_bridge: @command.bridge, triggered_for_branch: @pipeline.branch?, ref: @pipeline.ref, - has_execution_policy_pipelines: @command.execution_policy_pipelines.present? + has_pipeline_execution_policies: @command.pipeline_execution_policies.present? ) end end diff --git a/lib/gitlab/ci/pipeline/chain/populate.rb b/lib/gitlab/ci/pipeline/chain/populate.rb index 0c78901847570d8ad8f39f0508d60e99ea74e601..5b2cb7f759dcb5e194e67e4bfb77e78d0e5f1633 100644 --- a/lib/gitlab/ci/pipeline/chain/populate.rb +++ b/lib/gitlab/ci/pipeline/chain/populate.rb @@ -39,7 +39,7 @@ def break? def no_pipeline_to_create? # If there are security policy pipelines, # they will be merged onto the pipeline in PipelineExecutionPolicies::MergeJobs - stage_names.empty? && @command.execution_policy_pipelines.blank? + stage_names.empty? && @command.pipeline_execution_policies.blank? end def stage_names diff --git a/lib/gitlab/ci/project_config.rb b/lib/gitlab/ci/project_config.rb index 0845e113dfaa77cdc936b4892c6d1cb6e26e00c1..72ced07619929b9cbbc327093af1ad2b1c4626de 100644 --- a/lib/gitlab/ci/project_config.rb +++ b/lib/gitlab/ci/project_config.rb @@ -23,7 +23,7 @@ class ProjectConfig def initialize( project:, sha:, custom_content: nil, pipeline_source: nil, pipeline_source_bridge: nil, - triggered_for_branch: nil, ref: nil, has_execution_policy_pipelines: nil) + triggered_for_branch: nil, ref: nil, has_pipeline_execution_policies: nil) @config = nil sources.each do |source| @@ -34,7 +34,7 @@ def initialize( pipeline_source_bridge: pipeline_source_bridge, triggered_for_branch: triggered_for_branch, ref: ref, - has_execution_policy_pipelines: has_execution_policy_pipelines) + has_pipeline_execution_policies: has_pipeline_execution_policies) if source_config.exists? @config = source_config diff --git a/lib/gitlab/ci/project_config/source.rb b/lib/gitlab/ci/project_config/source.rb index 97893f4f91061d0badbc8608bfabde0fda8cd1c5..b7a00c0f2dce91021021a8c132f2e56454c77e6a 100644 --- a/lib/gitlab/ci/project_config/source.rb +++ b/lib/gitlab/ci/project_config/source.rb @@ -8,7 +8,7 @@ class Source def initialize( project:, sha:, custom_content: nil, pipeline_source: nil, pipeline_source_bridge: nil, - triggered_for_branch: false, ref: nil, has_execution_policy_pipelines: nil) + triggered_for_branch: false, ref: nil, has_pipeline_execution_policies: nil) @project = project @sha = sha @custom_content = custom_content @@ -16,7 +16,7 @@ def initialize( @pipeline_source_bridge = pipeline_source_bridge @triggered_for_branch = triggered_for_branch @ref = ref - @has_execution_policy_pipelines = has_execution_policy_pipelines + @has_pipeline_execution_policies = has_pipeline_execution_policies end def exists? diff --git a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb index 14e8c8dd625ae9dfe564835fef058604943a252c..85b0abb554839f604ac583965da84dc3f0a308df 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb @@ -111,14 +111,14 @@ def run_chain expect(pipeline).to be_filtered_by_rules end - context 'when there are execution_policy_pipelines' do + context 'when there are pipeline_execution_policies' do let(:policy_pipeline) { create(:ci_pipeline, project: project, user: user) } let(:command) do Gitlab::Ci::Pipeline::Chain::Command.new( project: project, current_user: user, origin_ref: 'master', - execution_policy_pipelines: [policy_pipeline], + pipeline_execution_policies: [policy_pipeline], seeds_block: nil) end diff --git a/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb index c9686e371b92b62ee9052417d4e8e36fea6c26d8..43d2b887403614d75d2a6716a76f94efc0c4333c 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb @@ -58,7 +58,7 @@ context 'when [ci skip] should be ignored' do let(:command) do - double('command', project: project, current_user: user, ignore_skip_ci: true, execution_policy_pipelines: nil) + double('command', project: project, current_user: user, ignore_skip_ci: true, pipeline_execution_policies: nil) end it 'does not break the chain' do @@ -71,7 +71,7 @@ context 'when pipeline should be skipped but not persisted' do let(:command) do double('command', project: project, current_user: user, ignore_skip_ci: false, save_incompleted: false, - execution_policy_pipelines: nil) + pipeline_execution_policies: nil) end before do