summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 12:46:00 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 12:46:00 +0200
commit5f98d059396dc8c0faab4defd0414049c909b6c1 (patch)
treed6e3f2935d89d6bae212d3f4f307fe83e941f7f7 /app/services
parent6cdbb27ec3cf72ce6728986909aa3df54b7a26c6 (diff)
downloadgitlab-ce-5f98d059396dc8c0faab4defd0414049c909b6c1.tar.gz
Add `action` and `on_stop` to `environment` in .gitlab-ci.yml
Diffstat (limited to 'app/services')
-rw-r--r--app/services/create_deployment_service.rb22
1 files changed, 9 insertions, 13 deletions
diff --git a/app/services/create_deployment_service.rb b/app/services/create_deployment_service.rb
index 47c740addb0..2e859a30cac 100644
--- a/app/services/create_deployment_service.rb
+++ b/app/services/create_deployment_service.rb
@@ -6,14 +6,12 @@ class CreateDeploymentService < BaseService
ActiveRecord::Base.transaction do
@deployable = deployable
- @environment = prepare_environment
+ @environment = environment
+ @environment.external_url = expanded_url if expanded_url
+ @environment.state_event = action
+ @environment.save
- if stop?
- @environment.stop
- return
- end
-
- @environment.start
+ return if @environment.stopped?
deploy.tap do |deployment|
deployment.update_merge_request_metrics!
@@ -37,10 +35,8 @@ class CreateDeploymentService < BaseService
deployable: @deployable)
end
- def prepare_environment
- project.environments.find_or_create_by(name: expanded_name) do |environment|
- environment.external_url = expanded_url
- end
+ def environment
+ @environment ||= project.environments.find_or_create_by(name: expanded_name)
end
def expanded_name
@@ -69,7 +65,7 @@ class CreateDeploymentService < BaseService
params[:variables] || []
end
- def stop?
- params[:options].fetch(:stop, false)
+ def action
+ params[:options].fetch(:action, 'start')
end
end