Optimize valid_dependency method by ayufan thought
This commit is contained in:
parent
fba38b51b7
commit
38d46754be
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue