Update order of build transition callbacks
This commit is contained in:
parent
ebeee31100
commit
f57cfdb6b5
|
|
@ -69,6 +69,21 @@ class CommitStatus < ActiveRecord::Base
|
||||||
commit_status.update_attributes finished_at: Time.now
|
commit_status.update_attributes finished_at: Time.now
|
||||||
end
|
end
|
||||||
|
|
||||||
|
after_transition do |commit_status, transition|
|
||||||
|
commit_status.pipeline.tap do |pipeline|
|
||||||
|
return if transition.loopback?
|
||||||
|
return unless pipeline
|
||||||
|
|
||||||
|
if commit_status.complete?
|
||||||
|
ProcessPipelineWorker.perform_async(pipeline.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
UpdatePipelineWorker.perform_async(pipeline.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
after_transition [:created, :pending, :running] => :success do |commit_status|
|
after_transition [:created, :pending, :running] => :success do |commit_status|
|
||||||
MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status)
|
MergeRequests::MergeWhenBuildSucceedsService.new(commit_status.pipeline.project, nil).trigger(commit_status)
|
||||||
end
|
end
|
||||||
|
|
@ -76,20 +91,6 @@ class CommitStatus < ActiveRecord::Base
|
||||||
after_transition any => :failed do |commit_status|
|
after_transition any => :failed do |commit_status|
|
||||||
MergeRequests::AddTodoWhenBuildFailsService.new(commit_status.pipeline.project, nil).execute(commit_status)
|
MergeRequests::AddTodoWhenBuildFailsService.new(commit_status.pipeline.project, nil).execute(commit_status)
|
||||||
end
|
end
|
||||||
|
|
||||||
after_transition do |commit_status, transition|
|
|
||||||
return if transition.loopback?
|
|
||||||
|
|
||||||
commit_status.pipeline.try(:id).try do |pipeline_id|
|
|
||||||
if commit_status.complete?
|
|
||||||
ProcessPipelineWorker.perform_async(pipeline_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
UpdatePipelineWorker.perform_async(pipeline_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
delegate :sha, :short_sha, to: :pipeline
|
delegate :sha, :short_sha, to: :pipeline
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,11 @@ module MergeRequests
|
||||||
end
|
end
|
||||||
|
|
||||||
# Triggers the automatic merge of merge_request once the build succeeds
|
# Triggers the automatic merge of merge_request once the build succeeds
|
||||||
def trigger(pipeline)
|
def trigger(commit_status)
|
||||||
return unless pipeline.success?
|
each_merge_request(commit_status) do |merge_request, pipeline|
|
||||||
|
|
||||||
each_merge_request(pipeline) do |merge_request|
|
|
||||||
next unless merge_request.merge_when_build_succeeds?
|
next unless merge_request.merge_when_build_succeeds?
|
||||||
next unless merge_request.mergeable?
|
next unless merge_request.mergeable?
|
||||||
|
next unless pipeline.success?
|
||||||
|
|
||||||
MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params)
|
MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@ class ProcessPipelineWorker
|
||||||
sidekiq_options queue: :default
|
sidekiq_options queue: :default
|
||||||
|
|
||||||
def perform(pipeline_id)
|
def perform(pipeline_id)
|
||||||
pipeline = Ci::Pipeline.find_by(id: pipeline_id)
|
Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline|
|
||||||
return unless pipeline
|
|
||||||
|
|
||||||
pipeline.process!
|
pipeline.process!
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@ class UpdatePipelineWorker
|
||||||
sidekiq_options queue: :default
|
sidekiq_options queue: :default
|
||||||
|
|
||||||
def perform(pipeline_id)
|
def perform(pipeline_id)
|
||||||
pipeline = Ci::Pipeline.find_by(id: pipeline_id)
|
Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline|
|
||||||
return unless pipeline
|
|
||||||
|
|
||||||
pipeline.update_status
|
pipeline.update_status
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue