diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-09-19 15:03:51 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-09-19 15:03:51 +0200 |
commit | e0cc2db08ff23244bb7eebe2bc7e6c51c2c85525 (patch) | |
tree | 17bc9796376ed027c86a429355ddcf8fe5ccde3e /app/models/commit_status.rb | |
parent | c20e4267e89c1fa84b3eeb9f63e17677388c25e3 (diff) | |
download | gitlab-ce-e0cc2db08ff23244bb7eebe2bc7e6c51c2c85525.tar.gz |
Make pipeline processing asynchronous
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r-- | app/models/commit_status.rb | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb index c85561291c8..e2009b9194b 100644 --- a/app/models/commit_status.rb +++ b/app/models/commit_status.rb @@ -70,21 +70,14 @@ class CommitStatus < ActiveRecord::Base end after_transition do |commit_status, transition| - commit_status.pipeline.try(:build_updated) unless transition.loopback? - end + if commit_status.pipeline && !transition.loopback? + ProcessPipelineWorker.perform_async( + commit_status.pipeline.id, + process: HasStatus.COMPLETED_STATUSES.include?(commit_status.status)) + end - after_transition any => [:success, :failed, :canceled] do |commit_status| - commit_status.pipeline.try(:process!) true end - - after_transition [:created, :pending, :running] => :success do |commit_status| - MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status) - end - - after_transition any => :failed do |commit_status| - MergeRequests::AddTodoWhenBuildFailsService.new(commit_status.pipeline.project, nil).execute(commit_status) - end end delegate :sha, :short_sha, to: :pipeline |