Optimize valid_dependency method by ayufan thought

This commit is contained in:
Shinya Maeda 2017-12-02 16:14:47 +09:00
parent fba38b51b7
commit 38d46754be
1 changed files with 11 additions and 15 deletions

View File

@ -143,7 +143,7 @@ module Ci
end end
before_transition any => [:running] do |build| before_transition any => [:running] do |build|
build.validates_dependencies! build.validates_dependencies! if Feature.enabled?('ci_validates_dependencies')
end end
end end
@ -485,20 +485,8 @@ module Ci
end end
def validates_dependencies! def validates_dependencies!
return unless Feature.enabled?('ci_validates_dependencies') dependencies.each do |dependency|
raise MissingDependenciesError unless dependency.valid_dependency?
dependencies.tap do |deps|
# When `dependencies` keyword is given and depended jobs are skipped by `only` keyword
if options[:dependencies]&.any? && deps.empty?
raise MissingDependenciesError
end
# When artifacts of depended jobs have not existsed
deps.each do |dep|
if dep.options[:artifacts]&.any? && !dep.artifacts?
raise MissingDependenciesError
end
end
end end
end end
@ -612,5 +600,13 @@ module Ci
update_project_statistics update_project_statistics
end end
end end
def valid_dependency?
return false unless complete?
return false if artifacts_expired?
return false if erased?
true
end
end end
end end