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:
Diffstat (limited to 'app/services/ci/retry_build_service.rb')
-rw-r--r--app/services/ci/retry_build_service.rb35
1 files changed, 13 insertions, 22 deletions
diff --git a/app/services/ci/retry_build_service.rb b/app/services/ci/retry_build_service.rb
index 89fe4ff9f60..7e5d5373648 100644
--- a/app/services/ci/retry_build_service.rb
+++ b/app/services/ci/retry_build_service.rb
@@ -25,10 +25,6 @@ module Ci
Gitlab::OptimisticLocking.retry_lock(new_build, name: 'retry_build', &:enqueue)
AfterRequeueJobService.new(project, current_user).execute(build)
-
- ::MergeRequests::AddTodoWhenBuildFailsService
- .new(project: project, current_user: current_user)
- .close(new_build)
end
end
@@ -42,16 +38,25 @@ module Ci
check_access!(build)
new_build = clone_build(build)
+
+ new_build.run_after_commit do
+ ::MergeRequests::AddTodoWhenBuildFailsService
+ .new(project: project)
+ .close(new_build)
+ end
+
+ if create_deployment_in_separate_transaction?
+ new_build.run_after_commit do |new_build|
+ ::Deployments::CreateForBuildService.new.execute(new_build)
+ end
+ end
+
::Ci::Pipelines::AddJobService.new(build.pipeline).execute!(new_build) do |job|
BulkInsertableAssociations.with_bulk_insert do
job.save!
end
end
- if create_deployment_in_separate_transaction?
- clone_deployment!(new_build, build)
- end
-
build.reset # refresh the data to get new values of `retried` and `processed`.
new_build
@@ -95,20 +100,6 @@ module Ci
.deployment_attributes_for(new_build, old_build.persisted_environment)
end
- def clone_deployment!(new_build, old_build)
- return unless old_build.deployment.present?
-
- # We should clone the previous deployment attributes instead of initializing
- # new object with `Seed::Deployment`.
- # See https://gitlab.com/gitlab-org/gitlab/-/issues/347206
- deployment = ::Gitlab::Ci::Pipeline::Seed::Deployment
- .new(new_build, old_build.persisted_environment).to_resource
-
- return unless deployment
-
- new_build.create_deployment!(deployment.attributes)
- end
-
def create_deployment_in_separate_transaction?
strong_memoize(:create_deployment_in_separate_transaction) do
::Feature.enabled?(:create_deployment_in_separate_transaction, project, default_enabled: :yaml)