diff options
Diffstat (limited to 'lib/gitlab/ci/pipeline/chain/create.rb')
-rw-r--r-- | lib/gitlab/ci/pipeline/chain/create.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/gitlab/ci/pipeline/chain/create.rb b/lib/gitlab/ci/pipeline/chain/create.rb index d5e17a123df..9f5c141ad14 100644 --- a/lib/gitlab/ci/pipeline/chain/create.rb +++ b/lib/gitlab/ci/pipeline/chain/create.rb @@ -14,6 +14,19 @@ module Gitlab ::Ci::CreatePipelineStagesService .new(project, current_user) .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 rescue ActiveRecord::RecordInvalid => e error("Failed to persist the pipeline: #{e}") |