summaryrefslogtreecommitdiff
path: root/app/models/commit_status.rb
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-09-19 15:03:51 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-09-19 15:03:51 +0200
commite0cc2db08ff23244bb7eebe2bc7e6c51c2c85525 (patch)
tree17bc9796376ed027c86a429355ddcf8fe5ccde3e /app/models/commit_status.rb
parentc20e4267e89c1fa84b3eeb9f63e17677388c25e3 (diff)
downloadgitlab-ce-e0cc2db08ff23244bb7eebe2bc7e6c51c2c85525.tar.gz
Make pipeline processing asynchronous
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r--app/models/commit_status.rb17
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