From 13fac75cd115ce484321cac1b079483bc9c58d5f Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 14 Feb 2019 10:07:54 -0500 Subject: Deterministic refactor --- build.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/build.sh b/build.sh index 0254885..29f9980 100755 --- a/build.sh +++ b/build.sh @@ -1,9 +1,58 @@ #!/bin/bash -PROJECT=astroconda/base -VERSION="${1}" -if [[ -z ${VERSION} ]]; then - echo "Project version required [e.g. 1.2.3]" +set -x +HUB=${3:-astroconda} +PROJECT=${HUB}/base +PROJECT_VERSION="${1}" +TAGS=() + +if [[ -z ${PROJECT_VERSION} ]]; then + echo "Project version required [e.g. 1.2.3... \$(git describe)]" exit 1 fi -docker build -t ${PROJECT}:latest -t ${PROJECT}:${VERSION} . +read \ + PROJECT_VERSION_MAJOR \ + PROJECT_VERSION_MINOR \ + PROJECT_VERSION_PATCH <<< ${PROJECT_VERSION//\./ } + +case "${HUB}" in + *amazonaws\.com) + if ! type -p aws; then + echo "awscli client not installed" + exit 1 + fi + REGION="$(awk -F'.' '{print $(NF-2)}' <<< ${HUB})" + $(aws ecr get-login --no-include-email --region ${REGION}) + unset REGION + ;; + *) + # Assume default index + docker login + ;; +esac + +TAGS+=( "-t ${PROJECT}:${PROJECT_VERSION}" ) +is_tag_latest=$([[ -f LATEST ]] && [[ $(