diff options
author | Sean McGivern <sean@gitlab.com> | 2019-08-05 08:12:28 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-08-05 08:12:28 +0000 |
commit | 523e00abd74a9067fb17129faa1d35bfa107e04a (patch) | |
tree | 20facb4c4149281b8d73459497a5189b483cacd5 /spec/services | |
parent | 5e20689d890598a6f1539a43365659cade13cdae (diff) | |
parent | a2bbf7b8c197922067d1266249197e5f60e0fd7f (diff) | |
download | gitlab-ce-523e00abd74a9067fb17129faa1d35bfa107e04a.tar.gz |
Merge branch 'properly-process-all-needs' into 'master'
Properly process all needs
Closes #65488
See merge request gitlab-org/gitlab-ce!31415
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/ci/process_pipeline_service_spec.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/services/ci/process_pipeline_service_spec.rb b/spec/services/ci/process_pipeline_service_spec.rb index 77f108b6ab8..1b28d2d4d02 100644 --- a/spec/services/ci/process_pipeline_service_spec.rb +++ b/spec/services/ci/process_pipeline_service_spec.rb @@ -786,6 +786,50 @@ describe Ci::ProcessPipelineService, '#execute' do expect(builds.pending).to contain_exactly(deploy) end end + + context 'when one of the jobs is run on a failure' do + let!(:linux_notify) { create_build('linux:notify', stage: 'deploy', stage_idx: 2, when: 'on_failure') } + + let!(:linux_notify_on_build) { create(:ci_build_need, build: linux_notify, name: 'linux:build') } + + context 'when another job in build phase fails first' do + context 'when ci_dag_support is enabled' do + it 'does skip linux:notify' do + expect(process_pipeline).to be_truthy + + mac_build.reset.drop! + linux_build.reset.success! + + expect(linux_notify.reset).to be_skipped + end + end + + context 'when ci_dag_support is disabled' do + before do + stub_feature_flags(ci_dag_support: false) + end + + it 'does run linux:notify' do + expect(process_pipeline).to be_truthy + + mac_build.reset.drop! + linux_build.reset.success! + + expect(linux_notify.reset).to be_pending + end + end + end + + context 'when linux:build job fails first' do + it 'does run linux:notify' do + expect(process_pipeline).to be_truthy + + linux_build.reset.drop! + + expect(linux_notify.reset).to be_pending + end + end + end end def process_pipeline |