diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-05-31 15:25:36 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-05-31 15:25:36 +0200 |
commit | 5c2ce44baf5205c038759c4779a74e3381183e8a (patch) | |
tree | e8d49c046e52d51efcef7544128edb9f8bdcc17b | |
parent | c72e21fd9764845a107005562ff8ce1c06cac431 (diff) | |
download | gitlab-ce-5c2ce44baf5205c038759c4779a74e3381183e8a.tar.gz |
Expose pipeline stage seeds from pipeline instance
-rw-r--r-- | app/models/ci/pipeline.rb | 12 | ||||
-rw-r--r-- | spec/models/ci/pipeline_spec.rb | 11 |
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 } |