debian-mirror-gitlab/app/workers/update_head_pipeline_for_merge_request_worker.rb

32 lines
952 B
Ruby
Raw Normal View History

2018-11-08 19:23:39 +05:30
# frozen_string_literal: true
2018-03-17 18:26:18 +05:30
class UpdateHeadPipelineForMergeRequestWorker
include ApplicationWorker
include PipelineQueue
2018-03-27 19:54:05 +05:30
queue_namespace :pipeline_processing
2019-01-03 12:48:30 +05:30
# rubocop: disable CodeReuse/ActiveRecord
2018-03-17 18:26:18 +05:30
def perform(merge_request_id)
merge_request = MergeRequest.find(merge_request_id)
2019-01-03 12:48:30 +05:30
pipeline = Ci::Pipeline.where(project: merge_request.source_project, ref: merge_request.source_branch).last
2018-03-17 18:26:18 +05:30
return unless pipeline && pipeline.latest?
if merge_request.diff_head_sha != pipeline.sha
log_error_message_for(merge_request)
return
end
merge_request.update_attribute(:head_pipeline_id, pipeline.id)
end
2019-01-03 12:48:30 +05:30
# rubocop: enable CodeReuse/ActiveRecord
2018-03-17 18:26:18 +05:30
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
end