summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/yaml_processor.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/ci/yaml_processor.rb')
-rw-r--r--lib/gitlab/ci/yaml_processor.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/gitlab/ci/yaml_processor.rb b/lib/gitlab/ci/yaml_processor.rb
index 0f9e7daf4b8..63242d60c85 100644
--- a/lib/gitlab/ci/yaml_processor.rb
+++ b/lib/gitlab/ci/yaml_processor.rb
@@ -104,8 +104,14 @@ module Gitlab
end
def validate_duplicate_needs!(name, needs)
- unless needs.uniq == needs
- error!("#{name} has duplicate entries in the needs section.")
+ duplicated_needs =
+ needs
+ .group_by { |need| need[:name] }
+ .select { |_, items| items.count > 1 }
+ .keys
+
+ unless duplicated_needs.empty?
+ error!("#{name} has the following needs duplicated: #{duplicated_needs.join(', ')}.")
end
end