summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil TrzciƄski <ayufan@ayufan.eu>2017-05-09 10:20:58 +0000
committerTimothy Andrew <mail@timothyandrew.net>2017-05-18 14:52:26 +0000
commit81f547a564693cf216d4a87afa5bcf042323b79d (patch)
treed6f3427e1ba7fd7f715eafb5e47c2c4279856d8e
parent91b4f8e30237b252059052686375f0ef7d7ec9c7 (diff)
downloadgitlab-ce-81f547a564693cf216d4a87afa5bcf042323b79d.tar.gz
Merge branch 'fix/gb/fix-skipped-manual-actions' into 'master'
Fix skipped manual actions issue in pipeline processing Closes #30212 See merge request !11164
-rw-r--r--app/services/ci/process_pipeline_service.rb2
-rw-r--r--changelogs/unreleased/fix-gb-fix-skipped-manual-actions.yml4
-rw-r--r--spec/services/ci/process_pipeline_service_spec.rb22
3 files changed, 27 insertions, 1 deletions
diff --git a/app/services/ci/process_pipeline_service.rb b/app/services/ci/process_pipeline_service.rb
index 647836de384..55af193d717 100644
--- a/app/services/ci/process_pipeline_service.rb
+++ b/app/services/ci/process_pipeline_service.rb
@@ -52,7 +52,7 @@ module Ci
when 'always'
%w[success failed skipped]
when 'manual'
- %w[success]
+ %w[success skipped]
else
[]
end
diff --git a/changelogs/unreleased/fix-gb-fix-skipped-manual-actions.yml b/changelogs/unreleased/fix-gb-fix-skipped-manual-actions.yml
new file mode 100644
index 00000000000..d8d4c668a44
--- /dev/null
+++ b/changelogs/unreleased/fix-gb-fix-skipped-manual-actions.yml
@@ -0,0 +1,4 @@
+---
+title: Fix skipped manual actions problem when processing the pipeline
+merge_request: 11164
+author:
diff --git a/spec/services/ci/process_pipeline_service_spec.rb b/spec/services/ci/process_pipeline_service_spec.rb
index f1e1e1b6067..fc5de5d069a 100644
--- a/spec/services/ci/process_pipeline_service_spec.rb
+++ b/spec/services/ci/process_pipeline_service_spec.rb
@@ -268,6 +268,24 @@ describe Ci::ProcessPipelineService, '#execute', :services do
end
end
+ context 'when there are only manual actions in stages' do
+ before do
+ create_build('image', stage_idx: 0, when: 'manual', allow_failure: true)
+ create_build('build', stage_idx: 1, when: 'manual', allow_failure: true)
+ create_build('deploy', stage_idx: 2, when: 'manual')
+ create_build('check', stage_idx: 3)
+
+ process_pipeline
+ end
+
+ it 'processes all jobs until blocking actions encountered' do
+ expect(all_builds_statuses).to eq(%w[manual manual manual created])
+ expect(all_builds_names).to eq(%w[image build deploy check])
+
+ expect(pipeline.reload).to be_blocked
+ end
+ end
+
context 'when blocking manual actions are defined' do
before do
create_build('code:test', stage_idx: 0)
@@ -456,6 +474,10 @@ describe Ci::ProcessPipelineService, '#execute', :services do
builds.pluck(:name)
end
+ def all_builds_names
+ all_builds.pluck(:name)
+ end
+
def builds_statuses
builds.pluck(:status)
end