summaryrefslogtreecommitdiff
path: root/app/controllers/projects/pipeline_schedules_controller.rb
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2017-12-02 22:55:49 -0800
committerStan Hu <stanhu@gmail.com>2017-12-12 15:07:23 -0800
commit8e7f19c60bea4eec86844be1e0db12ebf30f105e (patch)
treea86172a9287a4e85900236e3007408d7a8ae2fc2 /app/controllers/projects/pipeline_schedules_controller.rb
parentad1ce1238e8adfb1d10529a99ffd2b298bde3fb5 (diff)
downloadgitlab-ce-8e7f19c60bea4eec86844be1e0db12ebf30f105e.tar.gz
Add button to run scheduled pipeline immediately
Closes #38741
Diffstat (limited to 'app/controllers/projects/pipeline_schedules_controller.rb')
-rw-r--r--app/controllers/projects/pipeline_schedules_controller.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/app/controllers/projects/pipeline_schedules_controller.rb b/app/controllers/projects/pipeline_schedules_controller.rb
index ec7c645df5a..9fc7935950d 100644
--- a/app/controllers/projects/pipeline_schedules_controller.rb
+++ b/app/controllers/projects/pipeline_schedules_controller.rb
@@ -1,9 +1,10 @@
class Projects::PipelineSchedulesController < Projects::ApplicationController
before_action :schedule, except: [:index, :new, :create]
+ before_action :authorize_create_pipeline!, only: [:run]
before_action :authorize_read_pipeline_schedule!
before_action :authorize_create_pipeline_schedule!, only: [:new, :create]
- before_action :authorize_update_pipeline_schedule!, except: [:index, :new, :create]
+ before_action :authorize_update_pipeline_schedule!, except: [:index, :new, :create, :run]
before_action :authorize_admin_pipeline_schedule!, only: [:destroy]
def index
@@ -40,6 +41,19 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController
end
end
+ def run
+ job_id = RunPipelineScheduleWorker.perform_async(schedule.id, current_user.id)
+
+ flash[:notice] =
+ if job_id
+ 'Successfully scheduled pipeline to run immediately'
+ else
+ 'Unable to schedule a pipeline to run immediately'
+ end
+
+ redirect_to pipeline_schedules_path(@project)
+ end
+
def take_ownership
if schedule.update(owner: current_user)
redirect_to pipeline_schedules_path(@project)