diff options
author | Shinya Maeda <shinya@gitlab.com> | 2017-09-04 22:21:47 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2017-09-04 22:21:47 +0900 |
commit | 5b88bd81f52b454c80c54bef9951bdb8cf607238 (patch) | |
tree | c2258ceecd95eb391b2d54715b49b310cefb5ef5 | |
parent | fa6b9acaf9759c58353f8407ff20a7d02b8edf92 (diff) | |
download | gitlab-ce-5b88bd81f52b454c80c54bef9951bdb8cf607238.tar.gz |
Move trigger_variables to presenter
-rw-r--r-- | app/models/ci/build.rb | 14 | ||||
-rw-r--r-- | app/presenters/ci/build_presenter.rb | 11 | ||||
-rw-r--r-- | lib/gitlab/gitaly_client.rb | 3 | ||||
-rw-r--r-- | spec/models/ci/build_spec.rb | 38 | ||||
-rw-r--r-- | spec/presenters/ci/build_presenter_spec.rb | 34 |
5 files changed, 49 insertions, 51 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index e4f579b7897..ba3156154ac 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -221,24 +221,14 @@ module Ci variables += user_variables variables += project.group.secret_variables_for(ref, project).map(&:to_runner_variable) if project.group variables += secret_variables(environment: environment) - variables += trigger_variables + variables += trigger_request.user_variables if trigger_request + variables += pipeline.variables.map(&:to_runner_variable) variables += pipeline.pipeline_schedule.job_variables if pipeline.pipeline_schedule variables += persisted_environment_variables if environment variables end - def trigger_variables - return [] unless trigger_request # or pipeline.trigger? - - @trigger_variables ||= - if pipeline.variables.any? # If it's swtiched to Ci::PipelineVariables - pipeline.variables.map(&:to_runner_variable) - else # else it's still using trigger_request.variables - trigger_request.user_variables # Deprecated - end - end - def merge_request return @merge_request if defined?(@merge_request) diff --git a/app/presenters/ci/build_presenter.rb b/app/presenters/ci/build_presenter.rb index c495c3f39bb..255475e1fe6 100644 --- a/app/presenters/ci/build_presenter.rb +++ b/app/presenters/ci/build_presenter.rb @@ -17,5 +17,16 @@ module Ci "Job is redundant and is auto-canceled by Pipeline ##{auto_canceled_by_id}" end end + + def trigger_variables + return [] unless trigger_request + + @trigger_variables ||= + if pipeline.variables.any? + pipeline.variables.map(&:to_runner_variable) + else + trigger_request.user_variables + end + end end end diff --git a/lib/gitlab/gitaly_client.rb b/lib/gitlab/gitaly_client.rb index 9a5f4f598b2..72065811528 100644 --- a/lib/gitlab/gitaly_client.rb +++ b/lib/gitlab/gitaly_client.rb @@ -23,7 +23,8 @@ module Gitlab klass = Gitaly.const_get(name.to_s.camelcase.to_sym).const_get(:Stub) addr = address(storage) addr = addr.sub(%r{^tcp://}, '') if URI(addr).scheme == 'tcp' - klass.new(addr, :this_channel_is_insecure) + timeout = 10 if Rails.env.test? + klass.new(addr, :this_channel_is_insecure, timeout: timeout) end end end diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 137c460cce8..08d22f166e4 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -1690,44 +1690,6 @@ describe Ci::Build do end end - describe '#trigger_variables' do - let(:build) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) } - let(:trigger) { create(:ci_trigger, project: project) } - let(:trigger_request) { create(:ci_trigger_request, pipeline: pipeline, trigger: trigger) } - - subject { build.trigger_variables } - - it { is_expected.to eq(true) } - - context 'when variable is stored in ci_pipeline_variables' do - let!(:pipeline_variable) { create(:ci_pipeline_variable, pipeline: pipeline) } - - context 'when pipeline is triggered by trigger API' do - it 'returns variables' do - is_expected.to eq([pipeline_variable.to_runner_variable]) - end - end - - context 'when pipeline is not triggered by trigger API' do - let(:build) { create(:ci_build, pipeline: pipeline) } - - it 'does not return variables' do - is_expected.to eq([]) - end - end - end - - context 'when variable is stored in ci_trigger_requests.variables' do - before do - trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } ) - end - - it 'returns variables' do - is_expected.to eq(trigger_request.user_variables) - end - end - end - describe 'state transition: any => [:pending]' do let(:build) { create(:ci_build, :created) } diff --git a/spec/presenters/ci/build_presenter_spec.rb b/spec/presenters/ci/build_presenter_spec.rb index a7a34ecac72..1a8001be6ab 100644 --- a/spec/presenters/ci/build_presenter_spec.rb +++ b/spec/presenters/ci/build_presenter_spec.rb @@ -100,4 +100,38 @@ describe Ci::BuildPresenter do end end end + + describe '#trigger_variables' do + let(:build) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) } + let(:trigger) { create(:ci_trigger, project: project) } + let(:trigger_request) { create(:ci_trigger_request, pipeline: pipeline, trigger: trigger) } + + context 'when variable is stored in ci_pipeline_variables' do + let!(:pipeline_variable) { create(:ci_pipeline_variable, pipeline: pipeline) } + + context 'when pipeline is triggered by trigger API' do + it 'returns variables' do + expect(presenter.trigger_variables).to eq([pipeline_variable.to_runner_variable]) + end + end + + context 'when pipeline is not triggered by trigger API' do + let(:build) { create(:ci_build, pipeline: pipeline) } + + it 'does not return variables' do + expect(presenter.trigger_variables).to eq([]) + end + end + end + + context 'when variable is stored in ci_trigger_requests.variables' do + before do + trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } ) + end + + it 'returns variables' do + expect(presenter.trigger_variables).to eq(trigger_request.user_variables) + end + end + end end |