summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-13 14:55:44 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-13 14:56:32 +0200
commit8efa041a730515e57f127850414b3557c7af60b4 (patch)
treece71b71ffb030afd4e59466879d1d92b2882e085
parent03a8ed971154cb218b82e8be53943612de94999f (diff)
downloadgitlab-ce-8efa041a730515e57f127850414b3557c7af60b4.tar.gz
Do not process build success if project was removed
-rw-r--r--app/workers/build_success_worker.rb6
-rw-r--r--spec/workers/build_success_worker_spec.rb11
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