Commit 42102b43 authored by Kamil Trzcinski's avatar Kamil Trzcinski

Merge branch 'after-script' into make-before-after-overridable

parents 38b15e35 63bd1f92
...@@ -126,6 +126,9 @@ builds, including deploy builds. This can be an array or a multi-line string. ...@@ -126,6 +126,9 @@ builds, including deploy builds. This can be an array or a multi-line string.
### after_script ### after_script
>**Note:**
Introduced in GitLab 8.7 and GitLab Runner v1.2.
`after_script` is used to define the command that will be run after for all `after_script` is used to define the command that will be run after for all
builds. This has to be an array or a multi-line string. builds. This has to be an array or a multi-line string.
......
...@@ -92,6 +92,29 @@ module Ci ...@@ -92,6 +92,29 @@ module Ci
end end
def validate! def validate!
validate_global!
@jobs.each do |name, job|
validate_job!(name, job)
end
true
end
def validate_job!(name, job)
validate_job_name!(name)
validate_job_keys!(name, job)
validate_job_types!(name, job)
validate_job_stage!(name, job) if job[:stage]
validate_job_cache!(name, job) if job[:cache]
validate_job_artifacts!(name, job) if job[:artifacts]
validate_job_dependencies!(name, job) if job[:dependencies]
end
private
def validate_global!
unless validate_array_of_strings(@before_script) unless validate_array_of_strings(@before_script)
raise ValidationError, "before_script should be an array of strings" raise ValidationError, "before_script should be an array of strings"
end end
...@@ -116,40 +139,23 @@ module Ci ...@@ -116,40 +139,23 @@ module Ci
raise ValidationError, "variables should be a map of key-valued strings" raise ValidationError, "variables should be a map of key-valued strings"
end end
if @cache validate_global_cache! if @cache
if @cache[:key] && !validate_string(@cache[:key]) end
raise ValidationError, "cache:key parameter should be a string"
end
if @cache[:untracked] && !validate_boolean(@cache[:untracked])
raise ValidationError, "cache:untracked parameter should be an boolean"
end
if @cache[:paths] && !validate_array_of_strings(@cache[:paths]) def validate_global_cache!
raise ValidationError, "cache:paths parameter should be an array of strings" if @cache[:key] && !validate_string(@cache[:key])
end raise ValidationError, "cache:key parameter should be a string"
end end
@jobs.each do |name, job| if @cache[:untracked] && !validate_boolean(@cache[:untracked])
validate_job!(name, job) raise ValidationError, "cache:untracked parameter should be an boolean"
end end
true if @cache[:paths] && !validate_array_of_strings(@cache[:paths])
end raise ValidationError, "cache:paths parameter should be an array of strings"
end
def validate_job!(name, job)
validate_job_name!(name)
validate_job_keys!(name, job)
validate_job_types!(name, job)
validate_job_stage!(name, job) if job[:stage]
validate_job_cache!(name, job) if job[:cache]
validate_job_artifacts!(name, job) if job[:artifacts]
validate_job_dependencies!(name, job) if job[:dependencies]
end end
private
def validate_job_name!(name) def validate_job_name!(name)
if name.blank? || !validate_string(name) if name.blank? || !validate_string(name)
raise ValidationError, "job name should be non-empty string" raise ValidationError, "job name should be non-empty string"
......
...@@ -335,12 +335,12 @@ module Ci ...@@ -335,12 +335,12 @@ module Ci
describe "after_script" do describe "after_script" do
context "in global context" do context "in global context" do
let(:config) { let(:config) do
{ {
after_script: ["after_script"], after_script: ["after_script"],
test: { script: ["script"] } test: { script: ["script"] }
} }
} end
it "return after_script in options" do it "return after_script in options" do
expect(subject[:options][:after_script]).to eq(["after_script"]) expect(subject[:options][:after_script]).to eq(["after_script"])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment