summaryrefslogtreecommitdiff
path: root/app/services/deployments/create_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/deployments/create_service.rb')
-rw-r--r--app/services/deployments/create_service.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/app/services/deployments/create_service.rb b/app/services/deployments/create_service.rb
index 89e3f7c8b83..7355747d778 100644
--- a/app/services/deployments/create_service.rb
+++ b/app/services/deployments/create_service.rb
@@ -11,15 +11,17 @@ module Deployments
end
def execute
- create_deployment.tap do |deployment|
- AfterCreateService.new(deployment).execute if deployment.persisted?
+ environment.deployments.build(deployment_attributes).tap do |deployment|
+ # Deployment#change_status already saves the model, so we only need to
+ # call #save ourselves if no status is provided.
+ if (status = params[:status])
+ deployment.update_status(status)
+ else
+ deployment.save
+ end
end
end
- def create_deployment
- environment.deployments.create(deployment_attributes)
- end
-
def deployment_attributes
# We use explicit parameters here so we never by accident allow parameters
# to be set that one should not be able to set (e.g. the row ID).
@@ -31,8 +33,7 @@ module Deployments
tag: params[:tag],
sha: params[:sha],
user: current_user,
- on_stop: params[:on_stop],
- status: params[:status]
+ on_stop: params[:on_stop]
}
end
end