From 8efa041a730515e57f127850414b3557c7af60b4 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 13 Oct 2016 14:55:44 +0200 Subject: Do not process build success if project was removed --- app/workers/build_success_worker.rb | 6 ++++-- 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 -- cgit v1.2.1