From 21666b4de37d3c061f8348c5f03e3ff4564d76a7 Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Sun, 1 Jan 2023 22:27:47 +0500 Subject: [PATCH] Force push for images and proper interruption when pulling images fail. --- .drone.yml | 1 - mirror.sh | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4a563b7..397c869 100644 --- a/.drone.yml +++ b/.drone.yml @@ -32,7 +32,6 @@ steps: REGISTRY_USERNAME: drone REGISTRY_PASSWORD: from_secret: drone_secret - DOCKER_MAX_CONCURRENT_UPLOADS: 1 commands: - apk add --no-cache bash - ./mirror.sh diff --git a/mirror.sh b/mirror.sh index 3f5aa64..d817775 100755 --- a/mirror.sh +++ b/mirror.sh @@ -135,6 +135,8 @@ function mirror() { # We presumes that amd64 image should always be available. if ! get_amd64_image "${image}"; then echo "! Image mirroring failed! Cannot obtain amd64 image!" + + return 1 fi get_arm64_image "${image}" @@ -145,13 +147,13 @@ function mirror() { function push_multiarch_image() { local image=$1 - if ! docker push "${REMOTE_IMAGE}"-amd64 &> /dev/null; then + if ! docker push -f "${REMOTE_IMAGE}"-amd64 &> /dev/null; then echo -e "\t! amd64 image push failed!" else echo -e "\t* amd64 image pushed" fi - if ! docker push "${REMOTE_IMAGE}"-arm64 &> /dev/null; then + if ! docker push -f ="${REMOTE_IMAGE}"-arm64 &> /dev/null; then echo -e "\t! arm64 image push failed!" else echo -e "\t* arm64 image pushed" @@ -186,5 +188,9 @@ login_to_registry collect_images for package in "${WHAT_TO_MIRROR[@]}"; do - mirror "${package}" + if ! mirror "${package}"; then + echo "! Failed to mirror package ${package}!" + + exit 1 + fi done