diff options
Diffstat (limited to 'app/services/ci/unlock_artifacts_service.rb')
-rw-r--r-- | app/services/ci/unlock_artifacts_service.rb | 50 |
1 files changed, 11 insertions, 39 deletions
diff --git a/app/services/ci/unlock_artifacts_service.rb b/app/services/ci/unlock_artifacts_service.rb index 574cdae6480..237f1997edb 100644 --- a/app/services/ci/unlock_artifacts_service.rb +++ b/app/services/ci/unlock_artifacts_service.rb @@ -11,42 +11,21 @@ module Ci unlocked_pipeline_artifacts: 0 } - if ::Feature.enabled?(:ci_update_unlocked_job_artifacts, ci_ref.project) - loop do - unlocked_pipelines = [] - unlocked_job_artifacts = [] + loop do + unlocked_pipelines = [] + unlocked_job_artifacts = [] - ::Ci::Pipeline.transaction do - unlocked_pipelines = unlock_pipelines(ci_ref, before_pipeline) - unlocked_job_artifacts = unlock_job_artifacts(unlocked_pipelines) + ::Ci::Pipeline.transaction do + unlocked_pipelines = unlock_pipelines(ci_ref, before_pipeline) + unlocked_job_artifacts = unlock_job_artifacts(unlocked_pipelines) - results[:unlocked_pipeline_artifacts] += unlock_pipeline_artifacts(unlocked_pipelines) - end + results[:unlocked_pipeline_artifacts] += unlock_pipeline_artifacts(unlocked_pipelines) + end - break if unlocked_pipelines.empty? + break if unlocked_pipelines.empty? - results[:unlocked_pipelines] += unlocked_pipelines.length - results[:unlocked_job_artifacts] += unlocked_job_artifacts.length - end - else - query = <<~SQL.squish - UPDATE "ci_pipelines" - SET "locked" = #{::Ci::Pipeline.lockeds[:unlocked]} - WHERE "ci_pipelines"."id" in ( - #{collect_pipelines(ci_ref, before_pipeline).select(:id).to_sql} - LIMIT #{BATCH_SIZE} - FOR UPDATE SKIP LOCKED - ) - RETURNING "ci_pipelines"."id"; - SQL - - loop do - unlocked_pipelines = Ci::Pipeline.connection.exec_query(query) - - break if unlocked_pipelines.empty? - - results[:unlocked_pipelines] += unlocked_pipelines.length - end + results[:unlocked_pipelines] += unlocked_pipelines.length + results[:unlocked_job_artifacts] += unlocked_job_artifacts.length end results @@ -88,13 +67,6 @@ module Ci private - def collect_pipelines(ci_ref, before_pipeline) - pipeline_scope = ci_ref.pipelines - pipeline_scope = pipeline_scope.before_pipeline(before_pipeline) if before_pipeline - - pipeline_scope.artifacts_locked - end - def unlock_job_artifacts(pipelines) return if pipelines.empty? |