diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/models/ci/build.rb | 13 | ||||
-rw-r--r-- | app/models/concerns/artifact_migratable.rb | 14 | ||||
-rw-r--r-- | app/uploaders/legacy_artifact_uploader.rb | 3 |
3 files changed, 26 insertions, 4 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 1bd517641ac..b8a76e662b0 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -83,8 +83,13 @@ module Ci scope :unstarted, ->() { where(runner_id: nil) } scope :ignore_failures, ->() { where(allow_failure: false) } scope :with_artifacts_archive, ->() do - where('(artifacts_file IS NOT NULL AND artifacts_file <> ?) OR EXISTS (?)', - '', Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id').archive) + if Feature.enabled?(:ci_enable_legacy_artifacts) + where('(artifacts_file IS NOT NULL AND artifacts_file <> ?) OR EXISTS (?)', + '', Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id').archive) + else + where('EXISTS (?)', + Ci::JobArtifact.select(1).where('ci_builds.id = ci_job_artifacts.job_id').archive) + end end scope :with_existing_job_artifacts, ->(query) do @@ -135,6 +140,8 @@ module Ci where("EXISTS (?)", matcher) end + ## + # TODO: Remove these mounters when we remove :ci_enable_legacy_artifacts feature flag mount_uploader :legacy_artifacts_file, LegacyArtifactUploader, mount_on: :artifacts_file mount_uploader :legacy_artifacts_metadata, LegacyArtifactUploader, mount_on: :artifacts_metadata @@ -775,7 +782,7 @@ module Ci private def erase_old_artifacts! - # TODO: To be removed once we get rid of + # TODO: To be removed once we get rid of ci_enable_legacy_artifacts feature flag remove_artifacts_file! remove_artifacts_metadata! save diff --git a/app/models/concerns/artifact_migratable.rb b/app/models/concerns/artifact_migratable.rb index cbd63ba8876..7c9f579b480 100644 --- a/app/models/concerns/artifact_migratable.rb +++ b/app/models/concerns/artifact_migratable.rb @@ -13,7 +13,7 @@ module ArtifactMigratable end def artifacts? - !artifacts_expired? && artifacts_file.exists? + !artifacts_expired? && artifacts_file&.exists? end def artifacts_metadata? @@ -43,4 +43,16 @@ module ArtifactMigratable def artifacts_size read_attribute(:artifacts_size).to_i + job_artifacts.sum(:size).to_i end + + def legacy_artifacts_file + return unless Feature.enabled?(:ci_enable_legacy_artifacts) + + super + end + + def legacy_artifacts_metadata + return unless Feature.enabled?(:ci_enable_legacy_artifacts) + + super + end end diff --git a/app/uploaders/legacy_artifact_uploader.rb b/app/uploaders/legacy_artifact_uploader.rb index a9afc104ed1..fac3c3dcb8f 100644 --- a/app/uploaders/legacy_artifact_uploader.rb +++ b/app/uploaders/legacy_artifact_uploader.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +## +# TODO: Remove this uploader when we remove :ci_enable_legacy_artifacts feature flag +# See https://gitlab.com/gitlab-org/gitlab-ce/issues/58595 class LegacyArtifactUploader < GitlabUploader extend Workhorse::UploadPath include ObjectStorage::Concern |