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.
### 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
builds. This has to be an array or a multi-line string.
......
......@@ -92,6 +92,29 @@ module Ci
end
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)
raise ValidationError, "before_script should be an array of strings"
end
......@@ -116,7 +139,10 @@ module Ci
raise ValidationError, "variables should be a map of key-valued strings"
end
if @cache
validate_global_cache! if @cache
end
def validate_global_cache!
if @cache[:key] && !validate_string(@cache[:key])
raise ValidationError, "cache:key parameter should be a string"
end
......@@ -130,26 +156,6 @@ module Ci
end
end
@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_job_name!(name)
if name.blank? || !validate_string(name)
raise ValidationError, "job name should be non-empty string"
......
......@@ -335,12 +335,12 @@ module Ci
describe "after_script" do
context "in global context" do
let(:config) {
let(:config) do
{
after_script: ["after_script"],
test: { script: ["script"] }
}
}
end
it "return after_script in options" do
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