diff --git a/.github/workflows/main-docker.yml b/.github/workflows/main-docker.yml index a9b752167..4291c894a 100644 --- a/.github/workflows/main-docker.yml +++ b/.github/workflows/main-docker.yml @@ -129,6 +129,8 @@ jobs: type=ref,event=branch type=ref,event=tag type=sha + flavor: | + latest=false - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -213,7 +215,9 @@ jobs: images: | ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }} ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }} - + flavor: | + latest=false + - name: Login to GHCR uses: docker/login-action@v2 with: @@ -246,6 +250,7 @@ jobs: # If the ref is a tag, also tag the image as stable as this is part of a 'release' # and only go in the `if` if there is NOT a `-` in the tag's name, due to tagging of `-alpha`, `-beta`, etc... if [[ "${GITHUB_REF}" == refs/tags/* && ! "${REF_NAME}" =~ - ]]; then + # First create stable tags docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ -t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:stable \ $(printf '${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *) @@ -253,6 +258,19 @@ jobs: docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ -t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:stable \ $(printf '${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *) + + # Small delay to ensure stable tag is fully propagated + sleep 5 + + # Now update latest tags + docker buildx imagetools create \ + -t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ + ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:stable + + docker buildx imagetools create \ + -t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ + ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:stable + fi - name: Inspect image