summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2015-06-16 09:15:55 +0000
committerValery Sizov <valery@gitlab.com>2015-06-16 09:15:55 +0000
commit58dcfe0e3d3bb7b12e3f7aa4aed49bd0cc97c912 (patch)
treea145ba62b6147cd7768594ecd3b3952bdb488b89
parent895e39531884828ba6793eb77c8d78ef9b5b1b96 (diff)
parent5aa3da1076d663d36f662fd3b9e1cce600fab82a (diff)
downloadgitlab-ci-58dcfe0e3d3bb7b12e3f7aa4aed49bd0cc97c912.tar.gz
Merge branch 'yaml_invalid_handling' into 'master'
Invalid yaml handling See merge request !159
-rw-r--r--lib/gitlab_ci_yaml_processor.rb4
-rw-r--r--spec/lib/gitlab_ci_yaml_processor_spec.rb8
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/gitlab_ci_yaml_processor.rb b/lib/gitlab_ci_yaml_processor.rb
index 967146d..67903d5 100644
--- a/lib/gitlab_ci_yaml_processor.rb
+++ b/lib/gitlab_ci_yaml_processor.rb
@@ -2,20 +2,18 @@ class GitlabCiYamlProcessor
attr_reader :before_script, :skip_refs, :errors
def initialize(config)
- @errors = ""
@valid = true
@config = YAML.load(config).deep_symbolize_keys
@before_script = @config[:before_script] || []
@config.delete(:before_script)
-
+
@jobs = @config.select{|key, value| value[:type] != "deploy"}
@deploy_jobs = @config.select{|key, value| value[:type] == "deploy"}
rescue Exception => e
- @errors = e.message
@valid = false
end
diff --git a/spec/lib/gitlab_ci_yaml_processor_spec.rb b/spec/lib/gitlab_ci_yaml_processor_spec.rb
index 8976c12..14d273a 100644
--- a/spec/lib/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/gitlab_ci_yaml_processor_spec.rb
@@ -118,4 +118,12 @@ describe GitlabCiYamlProcessor do
config_processor.deploy_builds_for_ref("master").size.should == 1
end
end
+
+ describe "Error handling" do
+ it "indicated that object is invalid" do
+ config_processor = GitlabCiYamlProcessor.new("invalid_yaml\n!ccdvlf%612334@@@@")
+
+ config_processor.valid?.should be_false
+ end
+ end
end \ No newline at end of file