From 2145909d9f80043bb1a986b3ac2e1715fa44e4e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Fri, 6 Aug 2021 17:43:26 +0200 Subject: [PATCH] correct the docker image tagging and only build if there is a newer version available --- .gitlab-ci.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cb9477f..3db72eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,14 +12,22 @@ build: stage: build variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - D_IMAGE_TAG: egon0/writefreely-multiarch:$CI_COMMIT_REF_SLUG + D_IMAGE_TAG: egon0/writefreely-multiarch D_LATEST_TAG: egon0/writefreely-multiarch:latest script: - - apk add --no-cache jq wget - - VERSION=$(wget --quiet "https://api.github.com/repos/writefreely/writefreely/releases/latest" -O - | jq -r '.tag_name') && wget https://github.com/writefreely/writefreely/archive/${VERSION}.tar.gz -O /tmp/writefreely.tar.gz - - tar xf /tmp/writefreely.tar.gz --strip-components=1 - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - - sed -i 's/nodejs-npm/npm/g' Dockerfile - - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG -t $D_LATEST_TAG . + - > + apk add --no-cache jq wget; + LATEST_GITHUB=$(wget --quiet "https://api.github.com/repos/writefreely/writefreely/releases/latest" -O - | jq -r '.tag_name'); + LATEST_DHUB=$(wget -q https://registry.hub.docker.com/v1/repositories/$D_IMAGE_TAG/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}' | tail -n1); + if [ "$LATEST_GITHUB" != "$LATEST_DHUB" ] + then + wget https://github.com/writefreely/writefreely/archive/${VERSION}.tar.gz -O /tmp/writefreely.tar.gz + tar xf /tmp/writefreely.tar.gz --strip-components=1 + sed -i 's/nodejs-npm/npm/g' Dockerfile + docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD + docker buildx create --use --name A$CI_COMMIT_SHORT_SHA + docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$LATEST_GITHUB -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$LATEST_GITHUB -t $D_LATEST_TAG . + else + return 0 + fi