Commit 3145cbaa authored by Grzegorz Bizon's avatar Grzegorz Bizon

Decouple pipeline stage seeds from building environments

parent ad61a181
...@@ -3,17 +3,7 @@ module Ci ...@@ -3,17 +3,7 @@ module Ci
def execute(pipeline) def execute(pipeline)
pipeline.stage_seeds.each do |seed| pipeline.stage_seeds.each do |seed|
seed.user = current_user seed.user = current_user
seed.create!
seed.create! do |build|
##
# Create the environment before the build starts. This sets its slug and
# makes it available as an environment variable
#
if build.has_environment?
environment_name = build.expanded_environment_name
project.environments.find_or_create_by(name: environment_name)
end
end
end end
end end
end end
......
...@@ -14,6 +14,19 @@ module Gitlab ...@@ -14,6 +14,19 @@ module Gitlab
::Ci::CreatePipelineStagesService ::Ci::CreatePipelineStagesService
.new(project, current_user) .new(project, current_user)
.execute(pipeline) .execute(pipeline)
# TODO populate environments with find_or_initialize_by in the chain too.
##
# Create the environment before the build starts. This sets its slug and
# makes it available as an environment variable
#
pipeline.builds.each do |build|
if build.has_environment?
environment_name = build.expanded_environment_name
project.environments.find_or_create_by(name: environment_name)
end
end
end end
rescue ActiveRecord::RecordInvalid => e rescue ActiveRecord::RecordInvalid => e
error("Failed to persist the pipeline: #{e}") error("Failed to persist the pipeline: #{e}")
......
...@@ -19,7 +19,9 @@ module Gitlab ...@@ -19,7 +19,9 @@ module Gitlab
end end
def attributes def attributes
{ name: @name, pipeline: @pipeline, project: @pipeline.project } { name: @name,
pipeline: @pipeline,
project: @pipeline.project }
end end
# TODO decouple # TODO decouple
...@@ -43,10 +45,6 @@ module Gitlab ...@@ -43,10 +45,6 @@ module Gitlab
@pipeline.stages << stage @pipeline.stages << stage
stage.save! stage.save!
stage.builds.each do |build|
yield build if block_given?
end
end end
end end
end end
......
...@@ -73,8 +73,10 @@ module Gitlab ...@@ -73,8 +73,10 @@ module Gitlab
seeds = @stages.uniq.map do |stage| seeds = @stages.uniq.map do |stage|
builds = pipeline_stage_builds(stage, pipeline) builds = pipeline_stage_builds(stage, pipeline)
if builds.any?
Gitlab::Ci::Pipeline::Seed::Stage Gitlab::Ci::Pipeline::Seed::Stage
.new(pipeline, stage, builds) if builds.any? .new(pipeline, stage, builds)
end
end end
seeds.compact seeds.compact
......
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