summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil TrzciƄski <ayufan@ayufan.eu>2017-12-14 11:53:15 +0000
committerTiago <tiagonbotelho@hotmail.com>2017-12-14 12:16:50 +0000
commit10cfd86a8872c878cd93d76f4f523d7b11e9563e (patch)
tree9fe5812c3f92d0b4bb8dc1c22fbd186937e37562
parentc425722d74ed44b6e5e71af038acc81954b00d5a (diff)
downloadgitlab-ce-10cfd86a8872c878cd93d76f4f523d7b11e9563e.tar.gz
Merge branch '41110-dependencies-validator-fails-when-depended-job-is-manual' into 'master'
Dependencies Validator fails when depended job is `manual` Closes #41110 See merge request gitlab-org/gitlab-ce!15924 (cherry picked from commit 57175ecb5060dac145abc048b6e88642bc1aa82b) 1def948b Dependencies Validator fails when depended job is `manual`
-rw-r--r--app/models/ci/build.rb1
-rw-r--r--spec/models/ci/build_spec.rb7
-rw-r--r--spec/services/ci/register_job_service_spec.rb9
3 files changed, 7 insertions, 10 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 85960f1b6bb..83fe23606d1 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -491,7 +491,6 @@ module Ci
end
def valid_dependency?
- return false unless complete?
return false if artifacts_expired?
return false if erased?
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb
index a6258676767..917a5aac501 100644
--- a/spec/models/ci/build_spec.rb
+++ b/spec/models/ci/build_spec.rb
@@ -1871,9 +1871,9 @@ describe Ci::Build do
describe 'state transition: any => [:running]' do
shared_examples 'validation is active' do
context 'when depended job has not been completed yet' do
- let!(:pre_stage_job) { create(:ci_build, :running, pipeline: pipeline, name: 'test', stage_idx: 0) }
+ let!(:pre_stage_job) { create(:ci_build, :manual, pipeline: pipeline, name: 'test', stage_idx: 0) }
- it { expect { job.run! }.to raise_error(Ci::Build::MissingDependenciesError) }
+ it { expect { job.run! }.not_to raise_error(Ci::Build::MissingDependenciesError) }
end
context 'when artifacts of depended job has been expired' do
@@ -1895,11 +1895,10 @@ describe Ci::Build do
shared_examples 'validation is not active' do
context 'when depended job has not been completed yet' do
- let!(:pre_stage_job) { create(:ci_build, :running, pipeline: pipeline, name: 'test', stage_idx: 0) }
+ let!(:pre_stage_job) { create(:ci_build, :manual, pipeline: pipeline, name: 'test', stage_idx: 0) }
it { expect { job.run! }.not_to raise_error }
end
-
context 'when artifacts of depended job has been expired' do
let!(:pre_stage_job) { create(:ci_build, :success, :expired, pipeline: pipeline, name: 'test', stage_idx: 0) }
diff --git a/spec/services/ci/register_job_service_spec.rb b/spec/services/ci/register_job_service_spec.rb
index 22fb7ed7215..de8a9ce12ff 100644
--- a/spec/services/ci/register_job_service_spec.rb
+++ b/spec/services/ci/register_job_service_spec.rb
@@ -287,9 +287,9 @@ module Ci
shared_examples 'validation is active' do
context 'when depended job has not been completed yet' do
- let!(:pre_stage_job) { create(:ci_build, :running, pipeline: pipeline, name: 'test', stage_idx: 0) }
+ let!(:pre_stage_job) { create(:ci_build, :manual, pipeline: pipeline, name: 'test', stage_idx: 0) }
- it_behaves_like 'not pick'
+ it { expect(subject).to eq(pending_job) }
end
context 'when artifacts of depended job has been expired' do
@@ -309,7 +309,7 @@ module Ci
end
context 'when job object is staled' do
- let!(:pre_stage_job) { create(:ci_build, :running, pipeline: pipeline, name: 'test', stage_idx: 0) }
+ let!(:pre_stage_job) { create(:ci_build, :success, :expired, pipeline: pipeline, name: 'test', stage_idx: 0) }
before do
allow_any_instance_of(Ci::Build).to receive(:drop!)
@@ -324,11 +324,10 @@ module Ci
shared_examples 'validation is not active' do
context 'when depended job has not been completed yet' do
- let!(:pre_stage_job) { create(:ci_build, :running, pipeline: pipeline, name: 'test', stage_idx: 0) }
+ let!(:pre_stage_job) { create(:ci_build, :manual, pipeline: pipeline, name: 'test', stage_idx: 0) }
it { expect(subject).to eq(pending_job) }
end
-
context 'when artifacts of depended job has been expired' do
let!(:pre_stage_job) { create(:ci_build, :success, :expired, pipeline: pipeline, name: 'test', stage_idx: 0) }