summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/pipeline/seed
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2019-01-10 15:00:05 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2019-01-25 10:32:40 +0100
commit5d85a04927a1bb435e18c637b845d0e11613d9e4 (patch)
tree42e066354bd82d77095127ad5da8a32d4f5fba5a /lib/gitlab/ci/pipeline/seed
parent5692c282afe15ca0c8e99568984e48b4b7b4109a (diff)
downloadgitlab-ce-5d85a04927a1bb435e18c637b845d0e11613d9e4.tar.gz
Make it possible to fabricate CI/CD bridge jobs
Diffstat (limited to 'lib/gitlab/ci/pipeline/seed')
-rw-r--r--lib/gitlab/ci/pipeline/seed/build.rb10
-rw-r--r--lib/gitlab/ci/pipeline/seed/stage.rb8
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/gitlab/ci/pipeline/seed/build.rb b/lib/gitlab/ci/pipeline/seed/build.rb
index ef738a93bfe..d8296940a04 100644
--- a/lib/gitlab/ci/pipeline/seed/build.rb
+++ b/lib/gitlab/ci/pipeline/seed/build.rb
@@ -38,9 +38,17 @@ module Gitlab
)
end
+ def bridge?
+ @attributes.to_h.dig(:options, :trigger).present?
+ end
+
def to_resource
strong_memoize(:resource) do
- ::Ci::Build.new(attributes)
+ if bridge?
+ ::Ci::Bridge.new(attributes)
+ else
+ ::Ci::Build.new(attributes)
+ end
end
end
end
diff --git a/lib/gitlab/ci/pipeline/seed/stage.rb b/lib/gitlab/ci/pipeline/seed/stage.rb
index 4775ff15581..015ca61d726 100644
--- a/lib/gitlab/ci/pipeline/seed/stage.rb
+++ b/lib/gitlab/ci/pipeline/seed/stage.rb
@@ -39,7 +39,13 @@ module Gitlab
def to_resource
strong_memoize(:stage) do
::Ci::Stage.new(attributes).tap do |stage|
- seeds.each { |seed| stage.builds << seed.to_resource }
+ seeds.each do |seed|
+ if seed.bridge?
+ stage.statuses << seed.to_resource
+ else
+ stage.builds << seed.to_resource
+ end
+ end
end
end
end