From 5ceb439d211caccfe791bef968ba4a6e1bf38a4b Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 7 Mar 2018 14:51:41 +0100 Subject: [PATCH] Remove enforcing uniqueness of build variables --- app/models/ci/build.rb | 2 +- spec/models/ci/build_spec.rb | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 79e473c85b7..b230b7f47ef 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -268,7 +268,7 @@ module Ci variables += pipeline.pipeline_schedule.job_variables if pipeline.pipeline_schedule variables += persisted_environment_variables if environment - variables.reverse.uniq { |variable| variable.fetch(:key) }.reverse + variables end def features diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 692c4cc81e0..6e202de0db9 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -1873,14 +1873,13 @@ describe Ci::Build do pipeline.variables.build(key: 'MYVAR', value: 'pipeline value') end - it 'removes duplicates and leaves the latest occurence' do - expect(subject.count { |variable| variable.fetch(:key) == 'MYVAR' }) - .to be 1 - end - it 'overrides YAML variable using a pipeline variable' do - is_expected.not_to include(key: 'MYVAR', value: 'myvar', public: true) - is_expected.to include(key: 'MYVAR', value: 'pipeline value', public: false) + variables = subject.reverse.uniq { |variable| variable[:key] }.reverse + + expect(variables) + .not_to include(key: 'MYVAR', value: 'myvar', public: true) + expect(variables) + .to include(key: 'MYVAR', value: 'pipeline value', public: false) end end @@ -1921,8 +1920,8 @@ describe Ci::Build do context 'when build has environment and user-provided variables' do let(:expected_variables) do predefined_variables.map { |variable| variable.fetch(:key) } + - %w[YAML_VARIABLE CI_ENVIRONMENT_NAME CI_ENVIRONMENT_SLUG - CI_ENVIRONMENT_URL] + %w[YAML_VARIABLE CI_ENVIRONMENT_NAME CI_ENVIRONMENT_SLUG + CI_ENVIRONMENT_URL] end before do