diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 05ef064c62b8c32b7fbceab0c6582d7eaf32b7ba..dfb8572be334550e8b95b0cd0045e40029fbd924 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,33 +18,30 @@ build: --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" -tag-latest: + +.tag-template: stage: tag image: docker:24.0.7 rules: - if: $CI_COMMIT_TAG when: manual + before_script: + - mkdir -p $HOME/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > $HOME/.docker/config.json + +tag-latest: + extends: .tag-template script: - docker buildx imagetools create --tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG tag-major: - stage: tag - image: docker:24.0.7 - rules: - - if: $CI_COMMIT_TAG - when: manual + extends: .tag-template script: - export newtag=$(echo $CI_COMMIT_TAG | cut -d. -f 1) - docker buildx imagetools create --tag $CI_REGISTRY_IMAGE:$newtag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG tag-minor: - stage: tag - image: docker:24.0.7 - rules: - - if: $CI_COMMIT_TAG - when: manual + extends: .tag-template script: - - mkdir -p $HOME/.docker - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > $HOME/.docker/config.json - export newtag=$(echo $CI_COMMIT_TAG | cut -d. -f 1-2) - docker buildx imagetools create --tag $CI_REGISTRY_IMAGE:$newtag $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG