Commit 5b88bd81 authored by Shinya Maeda's avatar Shinya Maeda

Move trigger_variables to presenter

parent fa6b9aca
......@@ -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)
......
......@@ -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
......@@ -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
......
......@@ -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) }
......
......@@ -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
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