8e51439e80
Legacy artifacts have been correctly migrated to new place - ci_job_artifacts. Now it's time to remove the related code, but before that we should ensure it doesn't break anything by using feature flag.
58 lines
1.3 KiB
Ruby
58 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Adapter class to unify the interface between mounted uploaders and the
|
|
# Ci::Artifact model
|
|
# Meant to be prepended so the interface can stay the same
|
|
module ArtifactMigratable
|
|
def artifacts_file
|
|
job_artifacts_archive&.file || legacy_artifacts_file
|
|
end
|
|
|
|
def artifacts_metadata
|
|
job_artifacts_metadata&.file || legacy_artifacts_metadata
|
|
end
|
|
|
|
def artifacts?
|
|
!artifacts_expired? && artifacts_file&.exists?
|
|
end
|
|
|
|
def artifacts_metadata?
|
|
artifacts? && artifacts_metadata.exists?
|
|
end
|
|
|
|
def artifacts_file_changed?
|
|
job_artifacts_archive&.file_changed? || attribute_changed?(:artifacts_file)
|
|
end
|
|
|
|
def remove_artifacts_file!
|
|
if job_artifacts_archive
|
|
job_artifacts_archive.destroy
|
|
else
|
|
remove_legacy_artifacts_file!
|
|
end
|
|
end
|
|
|
|
def remove_artifacts_metadata!
|
|
if job_artifacts_metadata
|
|
job_artifacts_metadata.destroy
|
|
else
|
|
remove_legacy_artifacts_metadata!
|
|
end
|
|
end
|
|
|
|
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
|