class CircleCIReporter::Reporters::Link

Constants

LinkReport

@attr name [String] @attr url [String] @attr base_url [String, nil] @attr previous_url [String, nil]

Attributes

name[R]

@note Override {Base#name}

path[R]

Public Class Methods

new(path:, name:) click to toggle source

@param path [String] @param name [String]

# File lib/circleci_reporter/reporters/link.rb, line 25
def initialize(path:, name:)
  @path = path
  @name = name
end

Public Instance Methods

active?() click to toggle source

@note Implementation for {Base#active?}

# File lib/circleci_reporter/reporters/link.rb, line 31
def active?
  File.file?(File.join(configuration.artifacts_dir, path))
end
report(base_build, previous_build) click to toggle source

@param base_build [Build, nil] @param previous_build [Build, nil] @return [LinkReport]

# File lib/circleci_reporter/reporters/link.rb, line 41
def report(base_build, previous_build)
  LinkReport.new(name, url, extract_artifact_url(base_build), extract_artifact_url(previous_build))
end

Private Instance Methods

configuration() click to toggle source
# File lib/circleci_reporter/reporters/link.rb, line 61
def configuration
  CircleCIReporter.configuration
end
extract_artifact_url(build) click to toggle source

@param build [Build, nil] @return [String, nil]

# File lib/circleci_reporter/reporters/link.rb, line 67
def extract_artifact_url(build)
  return unless build

  artifact = build.find_artifact(path)
  artifact ? artifact.url : nil
end
url() click to toggle source

@return [String]

# File lib/circleci_reporter/reporters/link.rb, line 50
def url
  [
    'https://circle-artifacts.com/gh',
    configuration.project,
    configuration.current_build_number,
    'artifacts',
    "0/#{configuration.artifacts_dir}",
    path
  ].join('/')
end