diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-09-19 15:03:51 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-10-03 12:34:05 +0200 |
commit | 4567e624a06358f0e3451be51d134f8dd22c199d (patch) | |
tree | 6a45033ce16277554e84586535d661c38a346c3a /app/models/commit_status.rb | |
parent | d9f9ad9d7d672574a227dd6143cd3d08f2381be5 (diff) | |
download | gitlab-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.rb | 14 |
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 |