class Omnibus::Buildkite

Provides methods for fetching Omnibus project build metadata from Buildkite

@note Requires environment variables provided by Buildkite

Constants

AMI_ID_ENV_KEY

Constants for the buildkite environment variables

BUILDKITE_COMMAND_ENV_KEY
DOCKER_VERSION_ENV_KEY
HOSTNAME_ENV_KEY

Public Class Methods

ami_id() click to toggle source

The AMI ID of the instance the build is happening on.

@note This is only present when the instance is a Windows or Linux instance.

@note Relies on presence of ENV in Buildkite build job.

@return [String]

either the AMI ID, or 'unknown'
# File lib/omnibus/build_system_metadata/buildkite.rb, line 44
def ami_id
  ami_id = "unknown"
  if !ENV[AMI_ID_ENV_KEY].nil? && !ENV[AMI_ID_ENV_KEY].empty?
    ami_id = ENV[AMI_ID_ENV_KEY]
  end
  ami_id
end
docker_image() click to toggle source

The OS Image that is being used in the Docker build

@note Relies on presence of ENV in Buildkite build job.

@return [String]

String with the parameter that was provided in the `docker build` command
# File lib/omnibus/build_system_metadata/buildkite.rb, line 100
def docker_image
  buildkite_command = ENV[BUILDKITE_COMMAND_ENV_KEY]
  if is_docker_build && buildkite_command && buildkite_command.include?("OS_IMAGE")
    os_image = buildkite_command.match(/OS_IMAGE=(?<image_id>[\S]*)/)
    os_image[:image_id]
  end
end
docker_version() click to toggle source

The version of docker that was used in the build.

@note Relies on presence of ENV in Buildkite build job.

@return [String]

# File lib/omnibus/build_system_metadata/buildkite.rb, line 88
def docker_version
  ENV[DOCKER_VERSION_ENV_KEY] if is_docker_build
end
hostname() click to toggle source

The hostname of the instance the build is happening on.

@note This is only present when the instance is a MacOS instance.

@note Relies on presence of ENV in Buildkite build job.

@return [String]

either the hostname, or 'unknown'
# File lib/omnibus/build_system_metadata/buildkite.rb, line 62
def hostname
  hostname = "unknown"
  if !ENV[HOSTNAME_ENV_KEY].nil? && !ENV[HOSTNAME_ENV_KEY].empty? && ami_id == "unknown"
    hostname = ENV[HOSTNAME_ENV_KEY]
  end
  hostname
end
is_docker_build() click to toggle source

A boolean representing if the build is using docker or not.

@note Relies on presence of ENV in Buildkite build job.

@return [Boolean]

# File lib/omnibus/build_system_metadata/buildkite.rb, line 77
def is_docker_build
  !ENV[DOCKER_VERSION_ENV_KEY].nil? && !ENV[DOCKER_VERSION_ENV_KEY].empty? ? true : false
end
omnibus_version() click to toggle source

The version of Omnibus that is in ‘version.rb`

@return [String]

# File lib/omnibus/build_system_metadata/buildkite.rb, line 113
def omnibus_version
  Omnibus::VERSION
end
to_hash() click to toggle source
# File lib/omnibus/build_system_metadata/buildkite.rb, line 117
def to_hash
  ret = {}
  ret[:ami_id] = ami_id if ami_id != "unknown"
  ret[:hostname] = hostname if hostname != "unknown"
  ret[:is_docker_build] = is_docker_build if is_docker_build
  ret[:docker_version] = docker_version if docker_version
  ret[:docker_image] = docker_image if docker_image
  ret[:omnibus_version] = omnibus_version
  ret
end