diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-06-04 11:15:47 +0000 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2019-06-04 11:15:47 +0000 |
commit | aa6b8c8c227a3d5fc543bb3f681a9bbc1cf4f944 (patch) | |
tree | cdd0c4d943c693042fdd1c5f97dc7b007afc2184 /app | |
parent | cfc70fbe15c5a762afec98b751a8123e86dd7a6a (diff) | |
parent | 197a3d053359e66535c41935eac065ee424cbb07 (diff) | |
download | gitlab-ce-aa6b8c8c227a3d5fc543bb3f681a9bbc1cf4f944.tar.gz |
Merge branch 'introduce-auto-merge-process-worker' into 'master'
Introduce sidekiq worker for auto merge process
See merge request gitlab-org/gitlab-ce!28780
Diffstat (limited to 'app')
-rw-r--r-- | app/models/ci/pipeline.rb | 10 | ||||
-rw-r--r-- | app/workers/all_queues.yml | 2 | ||||
-rw-r--r-- | app/workers/auto_merge_process_worker.rb | 14 | ||||
-rw-r--r-- | app/workers/pipeline_success_worker.rb | 9 |
4 files changed, 27 insertions, 8 deletions
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 80401ca0a1e..3727a9861aa 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -166,6 +166,16 @@ module Ci end end + after_transition any => ::Ci::Pipeline.completed_statuses do |pipeline| + pipeline.run_after_commit do + pipeline.all_merge_requests.each do |merge_request| + next unless merge_request.auto_merge_enabled? + + AutoMergeProcessWorker.perform_async(merge_request.id) + end + end + end + after_transition any => [:success, :failed] do |pipeline| pipeline.run_after_commit do PipelineNotificationWorker.perform_async(pipeline.id) diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index e4e85de93da..fd0cc5fb24e 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -1,6 +1,8 @@ --- - auto_devops:auto_devops_disable +- auto_merge:auto_merge_process + - cronjob:admin_email - cronjob:expire_build_artifacts - cronjob:gitlab_usage_ping diff --git a/app/workers/auto_merge_process_worker.rb b/app/workers/auto_merge_process_worker.rb new file mode 100644 index 00000000000..cd81cdbc60c --- /dev/null +++ b/app/workers/auto_merge_process_worker.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AutoMergeProcessWorker + include ApplicationWorker + + queue_namespace :auto_merge + + def perform(merge_request_id) + MergeRequest.find_by_id(merge_request_id).try do |merge_request| + AutoMergeService.new(merge_request.project, merge_request.merge_user) + .process(merge_request) + end + end +end diff --git a/app/workers/pipeline_success_worker.rb b/app/workers/pipeline_success_worker.rb index ce6c88c85c1..666331e6cd4 100644 --- a/app/workers/pipeline_success_worker.rb +++ b/app/workers/pipeline_success_worker.rb @@ -6,14 +6,7 @@ class PipelineSuccessWorker queue_namespace :pipeline_processing - # rubocop: disable CodeReuse/ActiveRecord def perform(pipeline_id) - Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline| - pipeline.all_merge_requests.preload(:merge_user).each do |merge_request| - AutoMergeService.new(pipeline.project, merge_request.merge_user) - .process(merge_request) - end - end + # no-op end - # rubocop: enable CodeReuse/ActiveRecord end |