2018-06-27 07:23:28 +00:00
# frozen_string_literal: true
2017-09-07 07:58:15 +00:00
class UpdateHeadPipelineForMergeRequestWorker
2017-12-05 17:14:37 +00:00
include ApplicationWorker
2017-11-28 16:16:50 +00:00
include PipelineQueue
2017-09-07 07:58:15 +00:00
2018-03-06 17:43:10 +00:00
queue_namespace :pipeline_processing
2017-09-07 07:58:15 +00:00
def perform ( merge_request_id )
merge_request = MergeRequest . find ( merge_request_id )
pipeline = Ci :: Pipeline . where ( project : merge_request . source_project , ref : merge_request . source_branch ) . last
return unless pipeline && pipeline . latest?
2017-12-11 21:00:11 +00:00
if merge_request . diff_head_sha != pipeline . sha
log_error_message_for ( merge_request )
return
end
2017-09-07 07:58:15 +00:00
merge_request . update_attribute ( :head_pipeline_id , pipeline . id )
end
2017-12-11 21:00:11 +00:00
def log_error_message_for ( merge_request )
Rails . logger . error (
" Outdated head pipeline for active merge request: id= #{ merge_request . id } , source_branch= #{ merge_request . source_branch } , diff_head_sha= #{ merge_request . diff_head_sha } "
)
end
2017-09-07 07:58:15 +00:00
end