diff --git a/.github/workflows/deploy-image.yaml b/.github/workflows/deploy-image.yaml index f4c4c06..fb6114a 100644 --- a/.github/workflows/deploy-image.yaml +++ b/.github/workflows/deploy-image.yaml @@ -49,31 +49,12 @@ jobs: id: current_date run: echo "formatted=$(date -u +%Y.%m.%d)" >> $GITHUB_OUTPUT -# - name: Build base image -# id: docker_build_base -# uses: docker/build-push-action@v6 -# with: -# context: . -# platforms: linux/amd64,linux/arm64 -# file: Dockerfile -# push: true -# tags: | -# ${{ secrets.DOCKERHUB_REPO }}/postgis:base -# ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.imageVersion.imageDistro }}-${{ matrix.imageVersion.imageDistroVersion }}-${{ matrix.imageVersion.imageDistroVariant }} -# build-args: | -# DISTRO=${{ matrix.imageVersion.imageDistro }} -# IMAGE_VERSION=${{ matrix.imageVersion.imageDistroVersion }} -# IMAGE_VARIANT=${{ matrix.imageVersion.imageDistroVariant }} -# GENERATE_ALL_LOCALE=1 -# POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} -# POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} -# POSTGIS_MINOR_VERSION=${{ matrix.postgisMinorRelease }} -# cache-from: | -# type=gha,scope=test -# type=gha,scope=prod -# type=gha,scope=base -# cache-to: type=gha,scope=base -# target: postgis-base + - name: Check if image exists on Docker Hub + id: check_hub_image_exists + run: | + docker login --username ${{ secrets.DOCKERHUB_USERNAME }} --password ${{ secrets.DOCKERHUB_PASSWORD }} + TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.DOCKERHUB_PASSWORD }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) + check_image=$(curl --silent -f --head -lL https://hub.docker.com/v2/repositories/kartoza/postgis/tags/${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}/ | head -n 1 | cut -d ' ' -f2) >> $GITHUB_OUTPUT - name: Build prod image id: docker_build_prod @@ -84,8 +65,8 @@ jobs: file: Dockerfile push: true tags: | - ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }} - ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }} + ${{ secrets.DOCKERHUB_REPO }}/postgis + ${{ steps.check_hub_image_exists.outputs.check_image == 200 && format('{0}/postgis:{1}-{2}.{3}', secrets.DOCKERHUB_REPO, matrix.postgresMajorVersion, matrix.postgisMajorVersion, matrix.postgisMinorRelease) || null}} ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }} ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}--v${{ steps.current_date.outputs.formatted }} build-args: |