diff options
Diffstat (limited to 'app/services/ci/enqueue_job_service.rb')
-rw-r--r-- | app/services/ci/enqueue_job_service.rb | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/app/services/ci/enqueue_job_service.rb b/app/services/ci/enqueue_job_service.rb index 9e3bea3fd28..db616473336 100644 --- a/app/services/ci/enqueue_job_service.rb +++ b/app/services/ci/enqueue_job_service.rb @@ -11,11 +11,14 @@ module Ci end def execute(&transition) - job.user = current_user - job.job_variables_attributes = variables if variables - transition ||= ->(job) { job.enqueue! } - Gitlab::OptimisticLocking.retry_lock(job, name: 'ci_enqueue_job', &transition) + + Gitlab::OptimisticLocking.retry_lock(job, name: 'ci_enqueue_job') do |job| + job.user = current_user + job.job_variables_attributes = variables if variables + + transition.call(job) + end ResetSkippedJobsService.new(job.project, current_user).execute(job) |