diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-02-22 09:06:58 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-02-22 09:06:58 +0100 |
commit | 1965482f12688f4f26342b91eca888567d0dac04 (patch) | |
tree | 53f4a0865e42bfd1cb188346723eb148db67738b /app/services/ci/retry_pipeline_service.rb | |
parent | d16eed3b096bb01efda90dfea47ac549a9d2ffbc (diff) | |
download | gitlab-ce-1965482f12688f4f26342b91eca888567d0dac04.tar.gz |
Reprocess jobs in stages once when retrying pipeline
Diffstat (limited to 'app/services/ci/retry_pipeline_service.rb')
-rw-r--r-- | app/services/ci/retry_pipeline_service.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/app/services/ci/retry_pipeline_service.rb b/app/services/ci/retry_pipeline_service.rb index 7fcbac6399a..ca19b828e1c 100644 --- a/app/services/ci/retry_pipeline_service.rb +++ b/app/services/ci/retry_pipeline_service.rb @@ -5,13 +5,18 @@ module Ci raise Gitlab::Access::AccessDeniedError end - pipeline.builds.failed_or_canceled.find_each do |build| - next unless build.retryable? + pipeline.builds.failed_or_canceled.tap do |builds| + stage_idx = builds.order('stage_idx ASC') + .pluck('DISTINCT stage_idx').first - pipeline.mark_as_processable_after_stage(build.stage_idx) + pipeline.mark_as_processable_after_stage(stage_idx) - Ci::RetryBuildService.new(project, current_user) - .reprocess(build) + builds.find_each do |build| + next unless build.retryable? + + Ci::RetryBuildService.new(project, current_user) + .reprocess(build) + end end MergeRequests::AddTodoWhenBuildFailsService |