Commit 3726dc4b authored by Grzegorz Bizon's avatar Grzegorz Bizon

Check if project exists before creating deployment

parent 4e934259
......@@ -2,6 +2,8 @@ require_relative 'base_service'
class CreateDeploymentService < BaseService
def execute(deployable = nil)
return unless executable?
ActiveRecord::Base.transaction do
@deployable = deployable
@environment = prepare_environment
......@@ -14,6 +16,10 @@ class CreateDeploymentService < BaseService
private
def executable?
project && name.present?
end
def deploy
project.deployments.create(
environment: @environment,
......
......@@ -4,8 +4,6 @@ class BuildSuccessWorker
def perform(build_id)
Ci::Build.find_by(id: build_id).try do |build|
return unless build.project
create_deployment(build)
end
end
......
......@@ -84,6 +84,17 @@ describe CreateDeploymentService, services: true do
expect(subject).to be_persisted
end
end
context 'when project was removed' do
let(:project) { nil }
it 'does not create deployment or environment' do
expect { subject }.not_to raise_error
expect(Environment.count).to be_zero
expect(Deployment.count).to be_zero
end
end
end
describe 'processing of builds' do
......
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