diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb index f0c3eae661e17828fd257f9116160406f2347a22..e4710195687f20c1a5ddaf5ce9828f95a2de919c 100644 --- a/lib/ci/gitlab_ci_yaml_processor.rb +++ b/lib/ci/gitlab_ci_yaml_processor.rb @@ -91,6 +91,11 @@ 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"), tag_list: job[:tags] || [], name: name, diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb index 61e4f1cee2cbcb5144b72cc640d8adb5606b413e..590cf3d7b70045bd5587c1ca6d61de9d14f51412 100644 --- a/lib/gitlab/ci/config/node/configurable.rb +++ b/lib/gitlab/ci/config/node/configurable.rb @@ -52,7 +52,7 @@ module Gitlab factory = Node::Factory.new(entry_class) .with(description: metadata[:description]) - (@nodes ||= {}).merge!(symbol => factory) + (@nodes ||= {}).merge!(symbol.to_sym => factory) end end end diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb index e6f738b17959c9c9f90272cc1cf0dff710c9b505..08d8020f8e79a23a4f500fd46ac2b9b1494dbd64 100644 --- a/lib/gitlab/ci/config/node/entry.rb +++ b/lib/gitlab/ci/config/node/entry.rb @@ -44,8 +44,7 @@ module Gitlab end def errors - @validator.full_errors + - nodes.map(&:errors).flatten + @validator.messages + nodes.flat_map(&:errors) end def value diff --git a/lib/gitlab/ci/config/node/validator.rb b/lib/gitlab/ci/config/node/validator.rb index 02edc9219c395330ee2fc6eac9bfbceb6373858c..5f62d68710ddefdea8ed45494a88e63137baed1b 100644 --- a/lib/gitlab/ci/config/node/validator.rb +++ b/lib/gitlab/ci/config/node/validator.rb @@ -11,7 +11,7 @@ module Gitlab @node = node end - def full_errors + def messages errors.full_messages.map do |error| "#{@node.key} #{error}".humanize end diff --git a/spec/lib/gitlab/ci/config/node/validator_spec.rb b/spec/lib/gitlab/ci/config/node/validator_spec.rb index ad875d553840bf6b0b0797e8d2c645fd8ae35edd..aa55ce90b37c55d585b789c4fa44689e67ac4ec2 100644 --- a/spec/lib/gitlab/ci/config/node/validator_spec.rb +++ b/spec/lib/gitlab/ci/config/node/validator_spec.rb @@ -19,7 +19,7 @@ describe Gitlab::Ci::Config::Node::Validator do it 'returns no errors' do validator_instance.validate - expect(validator_instance.full_errors).to be_empty + expect(validator_instance.messages).to be_empty end end @@ -36,7 +36,7 @@ describe Gitlab::Ci::Config::Node::Validator do it 'returns errors' do validator_instance.validate - expect(validator_instance.full_errors).not_to be_empty + expect(validator_instance.messages).not_to be_empty end end end