Merge branch 'fix/gb/fix-skipped-manual-actions' into 'master'

Fix skipped manual actions issue in pipeline processing

Closes #30212

See merge request !11164
This commit is contained in:
Kamil Trzciński 2017-05-09 10:20:58 +00:00
commit eb61b3b3aa
3 changed files with 27 additions and 1 deletions

View file

@ -50,7 +50,7 @@ module Ci
when 'always' when 'always'
%w[success failed skipped] %w[success failed skipped]
when 'manual' when 'manual'
%w[success] %w[success skipped]
else else
[] []
end end

View file

@ -0,0 +1,4 @@
---
title: Fix skipped manual actions problem when processing the pipeline
merge_request: 11164
author:

View file

@ -268,6 +268,24 @@ describe Ci::ProcessPipelineService, '#execute', :services do
end end
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 context 'when blocking manual actions are defined' do
before do before do
create_build('code:test', stage_idx: 0) create_build('code:test', stage_idx: 0)
@ -441,6 +459,10 @@ describe Ci::ProcessPipelineService, '#execute', :services do
builds.pluck(:name) builds.pluck(:name)
end end
def all_builds_names
all_builds.pluck(:name)
end
def builds_statuses def builds_statuses
builds.pluck(:status) builds.pluck(:status)
end end