Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2017-12-03 09:55:49 +0300
committerStan Hu <stanhu@gmail.com>2017-12-13 02:07:23 +0300
commit8e7f19c60bea4eec86844be1e0db12ebf30f105e (patch)
treea86172a9287a4e85900236e3007408d7a8ae2fc2 /app/workers
parentad1ce1238e8adfb1d10529a99ffd2b298bde3fb5 (diff)
Add button to run scheduled pipeline immediately
Closes #38741
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/run_pipeline_schedule_worker.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/workers/run_pipeline_schedule_worker.rb b/app/workers/run_pipeline_schedule_worker.rb
new file mode 100644
index 00000000000..ac6371f0871
--- /dev/null
+++ b/app/workers/run_pipeline_schedule_worker.rb
@@ -0,0 +1,20 @@
+class RunPipelineScheduleWorker
+ include Sidekiq::Worker
+ include PipelineQueue
+
+ enqueue_in group: :creation
+
+ def perform(schedule_id, user_id)
+ schedule = Ci::PipelineSchedule.find(schedule_id)
+ user = User.find(user_id)
+
+ run_pipeline_schedule(schedule, user)
+ end
+
+ def run_pipeline_schedule(schedule, user)
+ Ci::CreatePipelineService.new(schedule.project,
+ user,
+ ref: schedule.ref)
+ .execute(:schedule, ignore_skip_ci: true, save_on_errors: false, schedule: schedule)
+ end
+end