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
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-03 12:34:05 +0200
commit4567e624a06358f0e3451be51d134f8dd22c199d (patch)
tree6a45033ce16277554e84586535d661c38a346c3a /app/models/commit_status.rb
parentd9f9ad9d7d672574a227dd6143cd3d08f2381be5 (diff)
downloadgitlab-ce-4567e624a06358f0e3451be51d134f8dd22c199d.tar.gz
Make pipeline processing asynchronous
Conflicts: app/models/ci/pipeline.rb app/models/commit_status.rb
Diffstat (limited to 'app/models/commit_status.rb')
-rw-r--r--app/models/commit_status.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index 736db1ab0f6..3d5e449f403 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -74,10 +74,6 @@ class CommitStatus < ActiveRecord::Base
true
end
- after_transition do |commit_status, transition|
- commit_status.pipeline.try(:build_updated) unless transition.loopback?
- end
-
after_transition [:created, :pending, :running] => :success do |commit_status|
MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status)
end
@@ -85,6 +81,16 @@ class CommitStatus < ActiveRecord::Base
after_transition any => :failed do |commit_status|
MergeRequests::AddTodoWhenBuildFailsService.new(commit_status.pipeline.project, nil).execute(commit_status)
end
+
+ after_transition do |commit_status, transition|
+ if commit_status.pipeline && !transition.loopback?
+ ProcessPipelineWorker.perform_async(
+ commit_status.pipeline.id,
+ process: HasStatus.COMPLETED_STATUSES.include?(commit_status.status))
+ end
+
+ true
+ end
end
delegate :sha, :short_sha, to: :pipeline