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.
This commit is contained in:
@@ -155,26 +155,24 @@ jobs:
|
|||||||
- name: Publish images on Docker Hub
|
- name: Publish images on Docker Hub
|
||||||
run: |
|
run: |
|
||||||
docker load -i postgrest-docker-aarch64.tar.gz
|
docker load -i postgrest-docker-aarch64.tar.gz
|
||||||
docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64"
|
||||||
docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64"
|
||||||
SHA256_ARM64=$(docker inspect postgrest:latest | jq -r '.[0].Id')
|
|
||||||
|
|
||||||
docker load -i postgrest-docker-x86-64.tar.gz
|
docker load -i postgrest-docker-x86-64.tar.gz
|
||||||
docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64"
|
||||||
docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64"
|
||||||
SHA256_AMD64=$(docker inspect postgrest:latest | jq -r '.[0].Id')
|
|
||||||
|
|
||||||
docker manifest create "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" \
|
docker manifest create "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" \
|
||||||
"$DOCKER_REPO/postgrest@$SHA256_ARM64" \
|
"$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" \
|
||||||
"$DOCKER_REPO/postgrest@$SHA256_AMD64"
|
"$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64"
|
||||||
docker manifest push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
docker manifest push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}"
|
||||||
|
|
||||||
# Only tag 'latest' for full releases
|
# Only tag 'latest' for full releases
|
||||||
if [ "${GITHUB_REF_NAME}" != "devel" ]; then
|
if [ "${GITHUB_REF_NAME}" != "devel" ]; then
|
||||||
echo "Pushing to 'latest' tag for full release of ${GITHUB_REF_NAME} ..."
|
echo "Pushing to 'latest' tag for full release of ${GITHUB_REF_NAME} ..."
|
||||||
docker manifest create "$DOCKER_REPO/postgrest:latest" \
|
docker manifest create "$DOCKER_REPO/postgrest:latest" \
|
||||||
"$DOCKER_REPO/postgrest@$SHA256_ARM64" \
|
"$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-arm64" \
|
||||||
"$DOCKER_REPO/postgrest@$SHA256_AMD64"
|
"$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}-linux-amd64"
|
||||||
docker manifest push "$DOCKER_REPO/postgrest:latest"
|
docker manifest push "$DOCKER_REPO/postgrest:latest"
|
||||||
else
|
else
|
||||||
echo "Skipping push to 'latest' tag for pre-release..."
|
echo "Skipping push to 'latest' tag for pre-release..."
|
||||||
|
|||||||
Reference in New Issue
Block a user