summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-05-31 15:25:36 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-05-31 15:25:36 +0200
commit5c2ce44baf5205c038759c4779a74e3381183e8a (patch)
treee8d49c046e52d51efcef7544128edb9f8bdcc17b
parentc72e21fd9764845a107005562ff8ce1c06cac431 (diff)
downloadgitlab-ce-5c2ce44baf5205c038759c4779a74e3381183e8a.tar.gz
Expose pipeline stage seeds from pipeline instance
-rw-r--r--app/models/ci/pipeline.rb12
-rw-r--r--spec/models/ci/pipeline_spec.rb11
2 files changed, 18 insertions, 5 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index d5b6da4eee6..155fefcc9c3 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -296,11 +296,13 @@ module Ci
end
def stage_seeds
- return [] unless config_processor
+ return unless config_processor
+
+ seeds_scope = { ref: ref, tag: tag?, trigger: trigger_requests.first }
- config_processor.stage_seeds(ref: ref,
- tag: tag?,
- trigger: trigger_requests.first)
+ config_processor.stage_seeds(seeds_scope).tap do |seeds|
+ seeds.pipeline = self
+ end
end
def has_stages?
@@ -312,7 +314,7 @@ module Ci
end
def config_processor
- return nil unless ci_yaml_file
+ return unless ci_yaml_file
return @config_processor if defined?(@config_processor)
@config_processor ||= begin
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index c4f07c4a693..3a1fe666ff0 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -202,6 +202,17 @@ describe Ci::Pipeline, models: true do
status: 'success')
end
+ describe '#stage_seeds' do
+ let(:pipeline) do
+ create(:ci_pipeline, config: { rspec: { script: 'rake' } })
+ end
+
+ it 'returns preseeded stage seeds object' do
+ expect(pipeline.stage_seeds).to be_a Gitlab::Ci::Stage::Seeds
+ expect(pipeline.stage_seeds.stages).to all(include(pipeline: pipeline))
+ end
+ end
+
describe '#stages' do
subject { pipeline.stages }