From 580ef30c8f2b7be175d81bfe8d966314c6617faf Mon Sep 17 00:00:00 2001 From: ivan-munteanu <148127170+ivan-munteanu@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:30:30 -0500 Subject: [PATCH] Added retry logic to install.sh What Changed: - Downloads now retry up to 5 times with 5-second delays between attempts - Applied to both the Flux binary and checksums file downloads - Clear feedback on retry attempts and failures Why This Matters - Improves Reliability: Network hiccups, rate limiting, or temporary outages no longer cause immediate failures. The action automatically recovers from transient issues. Signed-off-by: ivan-munteanu <148127170+ivan-munteanu@users.noreply.github.com> --- action/action.yml | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/action/action.yml b/action/action.yml index 83c5843c..5642ccfd 100644 --- a/action/action.yml +++ b/action/action.yml @@ -77,9 +77,37 @@ runs: FLUX_DOWNLOAD_URL="https://github.com/fluxcd/flux2/releases/download/v${VERSION}/" - curl -fsSL -o "$DL_DIR/$FLUX_TARGET_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_TARGET_FILE" - curl -fsSL -o "$DL_DIR/$FLUX_CHECKSUMS_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_CHECKSUMS_FILE" - + MAX_RETRIES=5 + RETRY_DELAY=5 + + for i in $(seq 1 $MAX_RETRIES); do + echo "Downloading flux binary (attempt $i/$MAX_RETRIES)" + if curl -fsSL -o "$DL_DIR/$FLUX_TARGET_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_TARGET_FILE"; then + break + fi + if [ $i -lt $MAX_RETRIES ]; then + echo "Download failed, retrying in ${RETRY_DELAY} seconds..." + sleep $RETRY_DELAY + else + echo "Failed to download flux binary after $MAX_RETRIES attempts" + exit 1 + fi + done + + for i in $(seq 1 $MAX_RETRIES); do + echo "Downloading checksums file (attempt $i/$MAX_RETRIES)" + if curl -fsSL -o "$DL_DIR/$FLUX_CHECKSUMS_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_CHECKSUMS_FILE"; then + break + fi + if [ $i -lt $MAX_RETRIES ]; then + echo "Download failed, retrying in ${RETRY_DELAY} seconds..." + sleep $RETRY_DELAY + else + echo "Failed to download checksums file after $MAX_RETRIES attempts" + exit 1 + fi + done + echo "Verifying checksum" sum="" if command -v openssl > /dev/null; then