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.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/gitlab_ci_yaml_processor.rb b/lib/gitlab_ci_yaml_processor.rb
index e1da311..b685867 100644
--- a/lib/gitlab_ci_yaml_processor.rb
+++ b/lib/gitlab_ci_yaml_processor.rb
@@ -46,8 +46,9 @@ class GitlabCiYamlProcessor
@variables = @config[:variables] || {}
@config.except!(*ALLOWED_YAML_KEYS)
+ # anything that doesn't have script is considered as unknown
@config.each do |name, param|
- raise ValidationError, "Unknown parameter: #{name}" unless param.is_a?(Hash)
+ raise ValidationError, "Unknown parameter: #{name}" unless param.is_a?(Hash) && param.has_key?(:script)
end
unless @config.values.any?{|job| job.is_a?(Hash)}
@@ -148,6 +149,10 @@ class GitlabCiYamlProcessor
end
end
+ if !job[:script].is_a?(String) && !validate_array_of_strings(job[:script])
+ raise ValidationError, "#{name}: script should be a string or an array of a strings"
+ end
+
if job[:stage]
unless job[:stage].is_a?(String) && job[:stage].in?(stages)
raise ValidationError, "#{name}: stage parameter should be #{stages.join(", ")}"