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