BigW Consortium Gitlab

Commit 036e297c by Grzegorz Bizon

Expose CI job commands and use in legacy processor

parent 6920390a
......@@ -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
......
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
......
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