summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-09-04 22:21:47 +0900
committerShinya Maeda <shinya@gitlab.com>2017-09-04 22:21:47 +0900
commit5b88bd81f52b454c80c54bef9951bdb8cf607238 (patch)
treec2258ceecd95eb391b2d54715b49b310cefb5ef5
parentfa6b9acaf9759c58353f8407ff20a7d02b8edf92 (diff)
downloadgitlab-ce-5b88bd81f52b454c80c54bef9951bdb8cf607238.tar.gz
Move trigger_variables to presenter
-rw-r--r--app/models/ci/build.rb14
-rw-r--r--app/presenters/ci/build_presenter.rb11
-rw-r--r--lib/gitlab/gitaly_client.rb3
-rw-r--r--spec/models/ci/build_spec.rb38
-rw-r--r--spec/presenters/ci/build_presenter_spec.rb34
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