Respect needs for artifacts
When `needs:` is defined, the value of it is not respected when returning a list of artifacts to the runner from the job.
This commit is contained in:
parent
db104aaf92
commit
181b9b3e73
2 changed files with 21 additions and 12 deletions
|
@ -715,18 +715,14 @@ module Ci
|
|||
|
||||
depended_jobs = depends_on_builds
|
||||
|
||||
# find all jobs that are dependent on
|
||||
if options[:dependencies].present?
|
||||
depended_jobs = depended_jobs.select do |job|
|
||||
options[:dependencies].include?(job.name)
|
||||
end
|
||||
# find all jobs that are needed
|
||||
if Feature.enabled?(:ci_dag_support, project) && needs.exists?
|
||||
depended_jobs = depended_jobs.where(name: needs.select(:name))
|
||||
end
|
||||
|
||||
# find all jobs that are needed by this one
|
||||
if options[:needs].present?
|
||||
depended_jobs = depended_jobs.select do |job|
|
||||
options[:needs].include?(job.name)
|
||||
end
|
||||
# find all jobs that are dependent on
|
||||
if options[:dependencies].present?
|
||||
depended_jobs = depended_jobs.where(name: options[:dependencies])
|
||||
end
|
||||
|
||||
depended_jobs
|
||||
|
|
|
@ -630,12 +630,17 @@ describe Ci::Build do
|
|||
create(:ci_build,
|
||||
pipeline: pipeline, name: 'final',
|
||||
stage_idx: 3, stage: 'deploy', options: {
|
||||
dependencies: dependencies,
|
||||
needs: needs
|
||||
dependencies: dependencies
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
before do
|
||||
needs.to_a.each do |need|
|
||||
create(:ci_build_need, build: final, name: need)
|
||||
end
|
||||
end
|
||||
|
||||
subject { final.dependencies }
|
||||
|
||||
context 'when depedencies are defined' do
|
||||
|
@ -648,6 +653,14 @@ describe Ci::Build do
|
|||
let(:needs) { %w(build rspec staging) }
|
||||
|
||||
it { is_expected.to contain_exactly(build, rspec_test, staging) }
|
||||
|
||||
context 'when ci_dag_support is disabled' do
|
||||
before do
|
||||
stub_feature_flags(ci_dag_support: false)
|
||||
end
|
||||
|
||||
it { is_expected.to contain_exactly(build, rspec_test, rubocop_test, staging) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when needs and dependencies are defined' do
|
||||
|
|
Loading…
Reference in a new issue