Class: Gitlab::Ci::Trace::Archive

Inherits:
Object
  • Object
show all
Includes:
Checksummable, Utils::StrongMemoize
Defined in:
lib/gitlab/ci/trace/archive.rb

Instance Method Summary collapse

Constructor Details

#initialize(job, trace_metadata, metrics = ::Gitlab::Ci::Trace::Metrics.new) ⇒ Archive

Returns a new instance of Archive.



10
11
12
13
14
# File 'lib/gitlab/ci/trace/archive.rb', line 10

def initialize(job, , metrics = ::Gitlab::Ci::Trace::Metrics.new)
  @job = job
  @trace_metadata = 
  @metrics = metrics
end

Instance Method Details

#execute!(stream) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gitlab/ci/trace/archive.rb', line 16

def execute!(stream)
  clone_file!(stream, JobArtifactUploader.workhorse_upload_path) do |clone_path|
    md5_checksum    = self.class.md5_hexdigest(clone_path) unless Gitlab::FIPS.enabled?
    sha256_checksum = self.class.sha256_hexdigest(clone_path)

    job.transaction do
      self.trace_artifact = create_build_trace!(clone_path, sha256_checksum)
      .track_archival!(trace_artifact.id, md5_checksum)
    end
  end

  validate_archived_trace unless Gitlab::FIPS.enabled?
end