diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-10-07 09:32:29 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-10-07 09:32:29 +0200 |
commit | a98e4081d1b122d001438d17036f395fc82b9d5c (patch) | |
tree | 1a1e00871ee4f35b36fc68851e0a0f8c6c09ce27 /app | |
parent | a43baa056e69827c342e705e2d5ea8cfc67bfd9c (diff) | |
download | gitlab-ce-a98e4081d1b122d001438d17036f395fc82b9d5c.tar.gz |
Process MWBS in successful pipeline asynchronously
Diffstat (limited to 'app')
-rw-r--r-- | app/models/ci/pipeline.rb | 2 | ||||
-rw-r--r-- | app/workers/pipeline_success_worker.rb | 12 |
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 |