summaryrefslogtreecommitdiff
path: root/app/services/ci/process_pipeline_service.rb
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-09-21 11:17:37 +0900
committerAlessio Caiazza <acaiazza@gitlab.com>2018-10-02 17:02:11 +0200
commita7c767f16446f71f6e35a5aa3d2fdc73037fcdf5 (patch)
tree6f0f2a85f44d796a31ae0813e1ce6d5434bc8fda /app/services/ci/process_pipeline_service.rb
parentaf51b95442aa867bd570b99d32f8b580f554675d (diff)
downloadgitlab-ce-a7c767f16446f71f6e35a5aa3d2fdc73037fcdf5.tar.gz
Add a new status to ci_builds.status
Diffstat (limited to 'app/services/ci/process_pipeline_service.rb')
-rw-r--r--app/services/ci/process_pipeline_service.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/app/services/ci/process_pipeline_service.rb b/app/services/ci/process_pipeline_service.rb
index 323075d404b..0a13da198cd 100644
--- a/app/services/ci/process_pipeline_service.rb
+++ b/app/services/ci/process_pipeline_service.rb
@@ -37,7 +37,7 @@ module Ci
def process_build(build, current_status)
if valid_statuses_for_when(build.when).include?(current_status)
- build.action? ? build.actionize : enqueue_build(build)
+ proceed_build(build)
true
else
build.skip
@@ -53,8 +53,10 @@ module Ci
%w[failed]
when 'always'
%w[success failed skipped]
- when 'manual', 'delayed'
+ when 'manual'
%w[success skipped]
+ when 'delayed'
+ %w[success skipped] # This might be `success` only
else
[]
end
@@ -102,8 +104,14 @@ module Ci
end
# rubocop: enable CodeReuse/ActiveRecord
- def enqueue_build(build)
- Ci::EnqueueBuildService.new(project, @user).execute(build)
+ def proceed_build(build)
+ if build.schedulable?
+ build.schedule!
+ elsif build.action?
+ build.actionize
+ else
+ Ci::EnqueueBuildService.new(project, @user).execute(build)
+ end
end
end
end