From 6b4022b0c1cce9c44dc020c3cc0f4e099a079552 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 19 Apr 2026 22:19:43 +0200 Subject: [PATCH] ci: fix docker push for release job Unfortunately, `docker manifest create` does not support image digests, so we need to push a tag for each version of the image. Furthermore, the docker CLI does not provide a way to delete that tag afterwards, so we will end up with those temporary tags. --- .github/workflows/release.yaml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 59bdc63ed..44575bac8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -155,26 +155,24 @@ jobs: - name: Publish images on Docker Hub run: | docker load -i postgrest-docker-aarch64.tar.gz - docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" - docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" - SHA256_ARM64=$(docker inspect postgrest:latest | jq -r '.[0].Id') + docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" + docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" docker load -i postgrest-docker-x86-64.tar.gz - docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" - docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" - SHA256_AMD64=$(docker inspect postgrest:latest | jq -r '.[0].Id') + docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64" + docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64" docker manifest create "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" \ - "$DOCKER_REPO/postgrest@$SHA256_ARM64" \ - "$DOCKER_REPO/postgrest@$SHA256_AMD64" + "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" \ + "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64" docker manifest push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" # Only tag 'latest' for full releases if [ "${GITHUB_REF_NAME}" != "devel" ]; then echo "Pushing to 'latest' tag for full release of ${GITHUB_REF_NAME} ..." docker manifest create "$DOCKER_REPO/postgrest:latest" \ - "$DOCKER_REPO/postgrest@$SHA256_ARM64" \ - "$DOCKER_REPO/postgrest@$SHA256_AMD64" + "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" \ + "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64" docker manifest push "$DOCKER_REPO/postgrest:latest" else echo "Skipping push to 'latest' tag for pre-release..."