diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-10-13 14:55:44 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-10-13 14:56:32 +0200 |
commit | 8efa041a730515e57f127850414b3557c7af60b4 (patch) | |
tree | ce71b71ffb030afd4e59466879d1d92b2882e085 | |
parent | 03a8ed971154cb218b82e8be53943612de94999f (diff) | |
download | gitlab-ce-8efa041a730515e57f127850414b3557c7af60b4.tar.gz |
Do not process build success if project was removed
-rw-r--r-- | app/workers/build_success_worker.rb | 6 | ||||
-rw-r--r-- | spec/workers/build_success_worker_spec.rb | 11 |
2 files changed, 15 insertions, 2 deletions
diff --git a/app/workers/build_success_worker.rb b/app/workers/build_success_worker.rb index d6db7642d82..5afb15f52b4 100644 --- a/app/workers/build_success_worker.rb +++ b/app/workers/build_success_worker.rb @@ -4,13 +4,15 @@ class BuildSuccessWorker def perform(build_id) Ci::Build.find_by(id: build_id).try do |build| - perform_deloyment(build) + return unless build.project + + create_deloyment(build) end end private - def perform_deloyment(build) + def create_deloyment(build) return if build.environment.blank? service = CreateDeploymentService.new( diff --git a/spec/workers/build_success_worker_spec.rb b/spec/workers/build_success_worker_spec.rb index c42bcd45d50..dba70883130 100644 --- a/spec/workers/build_success_worker_spec.rb +++ b/spec/workers/build_success_worker_spec.rb @@ -13,6 +13,17 @@ describe BuildSuccessWorker do described_class.new.perform(build.id) end end + + context 'when build is not associated with project' do + let!(:build) { create(:ci_build, project: nil) } + + it 'does not create deployment' do + expect_any_instance_of(CreateDeploymentService) + .not_to receive(:execute) + + described_class.new.perform(build.id) + end + end end context 'when build does not exist' do |