1# frozen_string_literal: true 2 3module MergeRequests 4 class CreatePipelineWorker 5 include ApplicationWorker 6 7 data_consistency :always 8 9 sidekiq_options retry: 3 10 include PipelineQueue 11 12 queue_namespace :pipeline_creation 13 feature_category :continuous_integration 14 urgency :high 15 worker_resource_boundary :cpu 16 idempotent! 17 18 def perform(project_id, user_id, merge_request_id) 19 project = Project.find_by_id(project_id) 20 return unless project 21 22 user = User.find_by_id(user_id) 23 return unless user 24 25 merge_request = MergeRequest.find_by_id(merge_request_id) 26 return unless merge_request 27 28 MergeRequests::CreatePipelineService.new(project: project, current_user: user).execute(merge_request) 29 merge_request.update_head_pipeline 30 end 31 end 32end 33