#!/bin/bash COMPONENT=${1} COMMIT_VERSION=${2} TAG_VERSION=${3} IMAGE=massivedecks/${COMPONENT} push_tag() { docker tag "${IMAGE}:${COMMIT_VERSION}" "${IMAGE}:${1}" docker push "${IMAGE}:${1}" } echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin docker push "${IMAGE}:${COMMIT_VERSION}" if [ -n "${TAG_VERSION}" ]; then RE="^([0-9]*)([.]([0-9]*)([.]([0-9]*)(-([0-9A-Za-z-]*))?)?)?$" if [[ "${TAG_VERSION}" =~ ${RE} ]]; then MAJOR="${BASH_REMATCH[1]}" MINOR="${BASH_REMATCH[3]:-0}" PATCH="${BASH_REMATCH[5]:-0}" PRERELEASE="${BASH_REMATCH[7]}" if [ -n "${PRERELEASE}" ]; then push_tag "${MAJOR}.${MINOR}.${PATCH}-${PRERELEASE}" else push_tag "${MAJOR}.${MINOR}.${PATCH}" push_tag "${MAJOR}.${MINOR}" push_tag "${MAJOR}" fi else echo "Non-semver tag name \"${TAG_VERSION}\"." >&2 exit 1 fi fi push_tag "latest"