summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-07 09:32:29 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-07 09:32:29 +0200
commita98e4081d1b122d001438d17036f395fc82b9d5c (patch)
tree1a1e00871ee4f35b36fc68851e0a0f8c6c09ce27 /app
parenta43baa056e69827c342e705e2d5ea8cfc67bfd9c (diff)
downloadgitlab-ce-a98e4081d1b122d001438d17036f395fc82b9d5c.tar.gz
Process MWBS in successful pipeline asynchronously
Diffstat (limited to 'app')
-rw-r--r--app/models/ci/pipeline.rb2
-rw-r--r--app/workers/pipeline_success_worker.rb12
2 files changed, 13 insertions, 1 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index 040ba20eb09..d3a6e0a11f0 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -71,7 +71,7 @@ module Ci
end
after_transition [:created, :pending, :running] => :success do |pipeline|
- MergeRequests::MergeWhenBuildSucceedsService.new(pipeline.project, nil).trigger(pipeline)
+ PipelineSuccessWorker.perform_async(pipeline.id)
end
after_transition do |pipeline, transition|
diff --git a/app/workers/pipeline_success_worker.rb b/app/workers/pipeline_success_worker.rb
new file mode 100644
index 00000000000..5dd443fea59
--- /dev/null
+++ b/app/workers/pipeline_success_worker.rb
@@ -0,0 +1,12 @@
+class PipelineSuccessWorker
+ include Sidekiq::Worker
+ sidekiq_options queue: :default
+
+ def perform(pipeline_id)
+ Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline|
+ MergeRequests::MergeWhenBuildSucceedsService
+ .new(pipeline.project, nil)
+ .trigger(pipeline)
+ end
+ end
+end