summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-04-05 12:07:12 +0000
committerRémy Coutable <remy@rymai.me>2017-04-05 12:07:12 +0000
commita40e357f27ddcefa9ef70be84c7e7ee0f3b15e02 (patch)
tree160f2c7416b8646dcb33091cfd9daa66180dd31a
parent10a77824e1f0c687a7293a8cb2e8d85665121e45 (diff)
parent31b8287a1b4cc5ee4424c35045fa4540e9665184 (diff)
downloadgitlab-ce-a40e357f27ddcefa9ef70be84c7e7ee0f3b15e02.tar.gz
Merge branch 'gitlab-ci-multi-runner-2284' into 'master'
Return an empty array when dependencies is an empty array Closes #30316 and gitlab-ci-multi-runner#2284 See merge request !10359
-rw-r--r--app/models/ci/build.rb6
-rw-r--r--spec/requests/api/runner_spec.rb23
2 files changed, 29 insertions, 0 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index ad0be70c32a..8431c5f228c 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -540,6 +540,8 @@ module Ci
end
def dependencies
+ return [] if empty_dependencies?
+
depended_jobs = depends_on_builds
return depended_jobs unless options[:dependencies].present?
@@ -549,6 +551,10 @@ module Ci
end
end
+ def empty_dependencies?
+ options[:dependencies]&.empty?
+ end
+
private
def update_artifacts_size
diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb
index 044b989e5ba..1cfac7353d4 100644
--- a/spec/requests/api/runner_spec.rb
+++ b/spec/requests/api/runner_spec.rb
@@ -461,6 +461,29 @@ describe API::Runner do
end
end
+ context 'when dependencies is an empty array' do
+ let!(:job) { create(:ci_build_tag, pipeline: pipeline, name: 'spinach', stage: 'test', stage_idx: 0) }
+ let!(:job2) { create(:ci_build_tag, pipeline: pipeline, name: 'rubocop', stage: 'test', stage_idx: 0) }
+ let!(:empty_dependencies_job) do
+ create(:ci_build, pipeline: pipeline, token: 'test-job-token', name: 'empty_dependencies_job',
+ stage: 'deploy', stage_idx: 1,
+ options: { dependencies: [] })
+ end
+
+ before do
+ job.success
+ job2.success
+ end
+
+ it 'returns an empty array' do
+ request_job
+
+ expect(response).to have_http_status(201)
+ expect(json_response['id']).to eq(empty_dependencies_job.id)
+ expect(json_response['dependencies'].count).to eq(0)
+ end
+ end
+
context 'when job has no tags' do
before { job.update(tags: []) }