Blob Blame History Raw
#!/bin/bash

# This script is used to tag the OpenShift Docker images.
#
# Resulting image will be tagged: 'name:version' and 'name:latest'. Name and version
#                                  are values of labels from resulted image
#
# VERSIONS - Must be set to a list with possible versions (subdirectories)

set -e

for dir in ${VERSIONS}; do
  [ ! -e "${dir}/.image-id" ] && echo "-> Image for version $dir not built, skipping tag." && continue
  pushd "${dir}" > /dev/null
  IMAGE_ID=$(cat .image-id)
  name=$(docker inspect -f "{{.Config.Labels.name}}" "$IMAGE_ID")
  version=$(docker inspect -f "{{.Config.Labels.version}}" "$IMAGE_ID")
  commit_date=$(git show -s HEAD --format=%cd --date=short | sed 's/-//g')
  date_and_hash="${commit_date}-$(git rev-parse --short HEAD)"

  echo "-> Tagging image '$IMAGE_ID' as '$name:$version' and '$name:latest' and '$name:$date_and_hash'"
  docker tag "$IMAGE_ID" "$name:$version"
  docker tag "$IMAGE_ID" "$name:latest"
  docker tag "$IMAGE_ID" "$name:$date_and_hash"

  for suffix in squashed raw; do
    id_file=.image-id.$suffix
    if test -f "$id_file"; then
        docker tag "$(cat "$id_file")" "$name:$suffix" || rm .image-id."$suffix"
    fi
  done

  popd > /dev/null
done