diff --git a/utils/publish/production.sh b/utils/publish/production.sh new file mode 100755 index 0000000..89eefc0 --- /dev/null +++ b/utils/publish/production.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Restrict production build to tag matching MAJOR.MINOR.REVISION. +if ! [[ "$CI_COMMIT_TAG" =~ ^[0-9]+[.][0-9]+[.][0-9]+$ ]]; then + echo "Version number must match major.minor.revision!" + exit 1 +fi + +# Define MAJOR, MINOR and REVISION version numbers. +MAJOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $1'}) +MINOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $2'}) +REVISION_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $3'}) +MAJOR=$MAJOR_NUMBER +MINOR=$MAJOR.$MINOR_NUMBER +REVISION=$MINOR.$REVISION_NUMBER + +# Build. +docker build \ + -t $CI_REGISTRY_IMAGE:latest \ + -t $CI_REGISTRY_IMAGE:$MAJOR \ + -t $CI_REGISTRY_IMAGE:$MINOR \ + -t $CI_REGISTRY_IMAGE:$REVISION . + +# And push. +docker push $CI_REGISTRY_IMAGE:latest +docker push $CI_REGISTRY_IMAGE:$MAJOR +docker push $CI_REGISTRY_IMAGE:$MINOR +docker push $CI_REGISTRY_IMAGE:$REVISION \ No newline at end of file diff --git a/utils/publish/staging.sh b/utils/publish/staging.sh new file mode 100755 index 0000000..9d7735a --- /dev/null +++ b/utils/publish/staging.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Just build and push as staging. +docker build -t $CI_REGISTRY_IMAGE:staging . +docker push $CI_REGISTRY_IMAGE:staging \ No newline at end of file