From ba6bac18e874c6f8ef7e21976590620a68dd0d09 Mon Sep 17 00:00:00 2001 From: "flow.gunso" Date: Fri, 15 Mar 2019 10:59:42 +0100 Subject: [PATCH] Restrict production builds to standard tag/version number --- .gitlab-ci.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 596aa2c..4f656ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,10 +20,19 @@ production: stage: build before_script: - echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin + - if ! [[ "$CI_COMMIT_TAG" =~ ^[0-9]+[.][0-9]+[.][0-9]+$ ]]; then echo "Version number must match major.minor.revision!"; exit 1; fi script: - - docker build -t $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG . + - 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 + - docker build -t $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:$MAJOR -t $CI_REGISTRY_IMAGE:$MINOR -t $CI_REGISTRY_IMAGE:$REVISION . - docker push $CI_REGISTRY_IMAGE:latest - - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG + - docker push $CI_REGISTRY_IMAGE:$MAJOR + - docker push $CI_REGISTRY_IMAGE:$MINOR + - docker push $CI_REGISTRY_IMAGE:$REVISION only: - tags except: