From 8fe613fd67ba7c0fb9ed6f71dca9620fe468bf7e Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 13 Nov 2018 15:20:47 +0900 Subject: Build deployment ralation in before create hook --- app/models/concerns/deployable.rb | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/models/concerns/deployable.rb b/app/models/concerns/deployable.rb index 85db01af18d..28f890084d6 100644 --- a/app/models/concerns/deployable.rb +++ b/app/models/concerns/deployable.rb @@ -4,23 +4,27 @@ module Deployable extend ActiveSupport::Concern included do - after_create :create_deployment + before_create :build_deployment - def create_deployment + def build_deployment return unless starts_environment? && !has_deployment? - environment = project.environments.find_or_create_by( - name: expanded_environment_name - ) - - create_deployment!( + self.deployment = build_deployment( project_id: environment.project_id, - environment: environment, + environment: ensure_environment, ref: ref, tag: tag, sha: sha, user: user, on_stop: on_stop) end + + def ensure_environment + project.environments.find_by_name(expanded_environment_name) || build_environment + end + + def build_environment + project.environments.build(name: expanded_environment_name) + end end end -- cgit v1.2.1