Expose CI job commands and use in legacy processor
This commit is contained in:
parent
6920390aad
commit
036e297ca3
|
|
@ -80,12 +80,7 @@ module Ci
|
|||
{
|
||||
stage_idx: @stages.index(job[:stage]),
|
||||
stage: job[:stage],
|
||||
##
|
||||
# Refactoring note:
|
||||
# - before script behaves differently than after script
|
||||
# - after script returns an array of commands
|
||||
# - before script should be a concatenated command
|
||||
commands: [job[:before_script] || @before_script, job[:script]].flatten.compact.join("\n"),
|
||||
commands: job[:commands],
|
||||
tag_list: job[:tags] || [],
|
||||
name: name,
|
||||
only: job[:only],
|
||||
|
|
@ -124,8 +119,12 @@ module Ci
|
|||
end
|
||||
|
||||
def validate_job_keys!(name, job)
|
||||
##
|
||||
# TODO, remove refactoring keys
|
||||
#
|
||||
refactoring_keys = [:commands]
|
||||
job.keys.each do |key|
|
||||
unless ALLOWED_JOB_KEYS.include? key
|
||||
unless (ALLOWED_JOB_KEYS + refactoring_keys).include? key
|
||||
raise ValidationError, "#{name} job: unknown parameter #{key}"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -40,23 +40,24 @@ module Gitlab
|
|||
|
||||
def before_script
|
||||
if before_script_defined?
|
||||
before_script_value.to_a
|
||||
before_script_value
|
||||
else
|
||||
@global.before_script.to_a
|
||||
@global.before_script
|
||||
end
|
||||
end
|
||||
|
||||
def commands
|
||||
(before_script + script).join("\n")
|
||||
[before_script, script].compact.join("\n")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def to_hash
|
||||
{ before_script: before_script_value,
|
||||
script: script_value,
|
||||
stage: stage_value,
|
||||
after_script: after_script_value }
|
||||
{ before_script: before_script,
|
||||
script: script,
|
||||
commands: commands,
|
||||
stage: stage,
|
||||
after_script: after_script }
|
||||
end
|
||||
|
||||
def compose!
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ describe Gitlab::Ci::Config::Node::Global do
|
|||
after_script: ['make clean'],
|
||||
stages: ['build', 'pages'],
|
||||
cache: { key: 'k', untracked: true, paths: ['public/'] },
|
||||
rspec: { script: 'rspec' },
|
||||
rspec: { script: %w[rspec ls] },
|
||||
spinach: { script: 'spinach' } }
|
||||
end
|
||||
|
||||
|
|
@ -129,8 +129,14 @@ describe Gitlab::Ci::Config::Node::Global do
|
|||
describe '#jobs' do
|
||||
it 'returns jobs configuration' do
|
||||
expect(global.jobs)
|
||||
.to eq(rspec: { script: %w[rspec], stage: 'test' },
|
||||
spinach: { script: %w[spinach], stage: 'test' })
|
||||
.to eq(rspec: { before_script: %w[ls pwd],
|
||||
script: %w[rspec ls],
|
||||
commands: "ls\npwd\nrspec\nls",
|
||||
stage: 'test' },
|
||||
spinach: { before_script: %w[ls pwd],
|
||||
script: %w[spinach],
|
||||
commands: "ls\npwd\nspinach",
|
||||
stage: 'test' })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ describe Gitlab::Ci::Config::Node::Job do
|
|||
expect(entry.value)
|
||||
.to eq(before_script: %w[ls pwd],
|
||||
script: %w[rspec],
|
||||
commands: "ls\npwd\nrspec",
|
||||
stage: 'test',
|
||||
after_script: %w[cleanup])
|
||||
end
|
||||
|
|
@ -114,7 +115,7 @@ describe Gitlab::Ci::Config::Node::Job do
|
|||
end
|
||||
|
||||
it 'returns correct script' do
|
||||
expect(entry.before_script).to eq []
|
||||
expect(entry.before_script).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::Ci::Config::Node::Jobs do
|
||||
let(:entry) { described_class.new(config, global: spy) }
|
||||
let(:entry) { described_class.new(config, global: global) }
|
||||
let(:global) { double('global', before_script: nil, stages: %w[test]) }
|
||||
|
||||
describe 'validations' do
|
||||
before do
|
||||
|
|
@ -62,8 +63,12 @@ describe Gitlab::Ci::Config::Node::Jobs do
|
|||
describe '#value' do
|
||||
it 'returns key value' do
|
||||
expect(entry.value)
|
||||
.to eq(rspec: { script: %w[rspec], stage: 'test' },
|
||||
spinach: { script: %w[spinach], stage: 'test' })
|
||||
.to eq(rspec: { script: %w[rspec],
|
||||
commands: 'rspec',
|
||||
stage: 'test' },
|
||||
spinach: { script: %w[spinach],
|
||||
commands: 'spinach',
|
||||
stage: 'test' })
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue