diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb index ad4e1c252310491888eb2345a681a70300a57dc7..438f807b118e186a95d1f1daa70c0d8d49ba4b2f 100644 --- a/app/models/commit_status.rb +++ b/app/models/commit_status.rb @@ -69,22 +69,15 @@ class CommitStatus < ActiveRecord::Base commit_status.update_attributes finished_at: Time.now end - # We use around_transition to process pipeline on next stages as soon as possible, before the `after_*` is executed - around_transition any => [:success, :failed, :canceled] do |commit_status, block| - block.call + after_transition do |commit_status, transition| + commit_status.pipeline.try(:build_updated) unless transition.loopback? + end + after_transition any => [:success, :failed, :canceled] do |commit_status| commit_status.pipeline.try(:process!) true end - after_transition do |commit_status, transition| - pipeline = commit_status.pipeline - if !transition.loopback? && pipeline - pipeline.reload - pipeline.build_updated - end - end - after_transition [:created, :pending, :running] => :success do |commit_status| MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status) end