diff options
Diffstat (limited to 'app/services/ci/retry_build_service.rb')
-rw-r--r-- | app/services/ci/retry_build_service.rb | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/app/services/ci/retry_build_service.rb b/app/services/ci/retry_build_service.rb index b2c5249a0c7..e3de7f43fda 100644 --- a/app/services/ci/retry_build_service.rb +++ b/app/services/ci/retry_build_service.rb @@ -2,8 +2,6 @@ module Ci class RetryBuildService < ::BaseService - include Gitlab::OptimisticLocking - def self.clone_accessors %i[pipeline project ref tag options name allow_failure stage stage_id stage_idx trigger_request @@ -16,12 +14,10 @@ module Ci build.ensure_scheduling_type! reprocess!(build).tap do |new_build| - mark_subsequent_stages_as_processable(build) - build.pipeline.reset_ancestor_bridges! - Gitlab::OptimisticLocking.retry_lock(new_build, name: 'retry_build', &:enqueue) + AfterRequeueJobService.new(project, current_user).execute(build) - MergeRequests::AddTodoWhenBuildFailsService + ::MergeRequests::AddTodoWhenBuildFailsService .new(project, current_user) .close(new_build) end @@ -33,9 +29,9 @@ module Ci raise Gitlab::Access::AccessDeniedError end - attributes = self.class.clone_accessors.map do |attribute| + attributes = self.class.clone_accessors.to_h do |attribute| [attribute, build.public_send(attribute)] # rubocop:disable GitlabSecurity/PublicSend - end.to_h + end attributes[:user] = current_user @@ -65,12 +61,6 @@ module Ci end build end - - def mark_subsequent_stages_as_processable(build) - build.pipeline.processables.skipped.after_stage(build.stage_idx).find_each do |skipped| - retry_optimistic_lock(skipped, name: 'ci_retry_build_mark_subsequent_stages') { |build| build.process(current_user) } - end - end end end |