From cd64fb966e7e9d764e622e42b177a1f13dc65ec0 Mon Sep 17 00:00:00 2001 From: Ivan Gabaldon Date: Mon, 12 May 2025 00:01:12 +0200 Subject: [PATCH] [enh] container: support multiple registries Allows to push the manifests to other registries, this allows to push both docker.io and ghcr.io registries. --- .github/workflows/container.yml | 8 ++++---- utils/lib_sxng_container.sh | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 93951674c..72e03be50 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -117,10 +117,6 @@ jobs: os: ubuntu-24.04-arm emulation: true - permissions: - # Organization GHCR - packages: write - steps: - name: Checkout uses: actions/checkout@v4 @@ -152,6 +148,10 @@ jobs: - build - test + permissions: + # Organization GHCR + packages: write + steps: - name: Checkout uses: actions/checkout@v4 diff --git a/utils/lib_sxng_container.sh b/utils/lib_sxng_container.sh index 49ef1ef05..6e29a3809 100644 --- a/utils/lib_sxng_container.sh +++ b/utils/lib_sxng_container.sh @@ -255,8 +255,7 @@ container.push() { done # Manifest tags - release_tags=("latest") - release_tags+=("$DOCKER_TAG") + release_tags=("latest" "$DOCKER_TAG") # Create manifests for tag in "${release_tags[@]}"; do @@ -274,13 +273,18 @@ container.push() { podman image list - # Push manifests - for tag in "${release_tags[@]}"; do - build_msg CONTAINER "Pushing manifest with tag: $tag" + # Remote registries + release_registries=("ghcr.io" "docker.io") - podman manifest push \ - "localhost/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:$tag" \ - "docker://docker.io/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:$tag" + # Push manifests + for registry in "${release_registries[@]}"; do + for tag in "${release_tags[@]}"; do + build_msg CONTAINER "Pushing manifest $tag to $registry" + + podman manifest push \ + "localhost/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:$tag" \ + "docker://$registry/$CONTAINER_IMAGE_ORGANIZATION/$CONTAINER_IMAGE_NAME:$tag" + done done ) dump_return $?