From 722fb8e23a6d238ff97c9d8a1886c21443c8b824 Mon Sep 17 00:00:00 2001 From: Prajwol Amatya Date: Mon, 13 Apr 2026 12:34:09 +0545 Subject: [PATCH] add retry on 5xx error Signed-off-by: Prajwol Amatya --- .github/workflows/acceptance-tests.yml | 98 ++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 4 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 370f9cecb8b..ec1f4ebdd50 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -207,7 +207,37 @@ jobs: - name: Install PHP 8.4 run: | - sudo add-apt-repository -y ppa:ondrej/php + for attempt in {1..5}; do + echo "Attempt $attempt/5..." + + OUTPUT=$(sudo add-apt-repository -y ppa:ondrej/php 2>&1) + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ]; then + echo "PPA added successfully." + break + fi + ERROR_MSG=$(echo "$OUTPUT" | grep -E "(504 Gateway Time-out|502 Bad Gateway|503 Service Unavailable|HTTP Error 5[0-9][0-9])" | head -n 1) + + # Retry on 5xx error + if [ -n "$ERROR_MSG" ]; then + echo "Error: $ERROR_MSG" + echo "Retrying......" + else + echo "Error: $OUTPUT" + exit 1 + fi + + # delay + sleep 10 + done + + if [ $EXIT_CODE -ne 0 ]; then + echo "Failed to add PPA after 5 attempts." + echo "Error: $OUTPUT" + exit 1 + fi + sudo apt-get update -qq sudo apt-get install -y php8.4 php8.4-curl php8.4-xml php8.4-mbstring php8.4-zip php8.4-ldap php8.4-gd sudo update-alternatives --set php /usr/bin/php8.4 @@ -243,7 +273,37 @@ jobs: - name: Install PHP 8.4 run: | - sudo add-apt-repository -y ppa:ondrej/php + for attempt in {1..5}; do + echo "Attempt $attempt/5..." + + OUTPUT=$(sudo add-apt-repository -y ppa:ondrej/php 2>&1) + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ]; then + echo "PPA added successfully." + break + fi + ERROR_MSG=$(echo "$OUTPUT" | grep -E "(504 Gateway Time-out|502 Bad Gateway|503 Service Unavailable|HTTP Error 5[0-9][0-9])" | head -n 1) + + # Retry on 5xx error + if [ -n "$ERROR_MSG" ]; then + echo "Error: $ERROR_MSG" + echo "Retrying......" + else + echo "Error: $OUTPUT" + exit 1 + fi + + # delay + sleep 10 + done + + if [ $EXIT_CODE -ne 0 ]; then + echo "Failed to add PPA after 5 attempts." + echo "Error: $OUTPUT" + exit 1 + fi + sudo apt-get update -qq sudo apt-get install -y php8.4 php8.4-curl php8.4-xml php8.4-mbstring php8.4-zip php8.4-ldap php8.4-gd sudo update-alternatives --set php /usr/bin/php8.4 @@ -331,7 +391,37 @@ jobs: - name: Install PHP 8.4 run: | - sudo add-apt-repository -y ppa:ondrej/php + for attempt in {1..5}; do + echo "Attempt $attempt/5..." + + OUTPUT=$(sudo add-apt-repository -y ppa:ondrej/php 2>&1) + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ]; then + echo "PPA added successfully." + break + fi + ERROR_MSG=$(echo "$OUTPUT" | grep -E "(504 Gateway Time-out|502 Bad Gateway|503 Service Unavailable|HTTP Error 5[0-9][0-9])" | head -n 1) + + # Retry on 5xx error + if [ -n "$ERROR_MSG" ]; then + echo "Error: $ERROR_MSG" + echo "Retrying......" + else + echo "Error: $OUTPUT" + exit 1 + fi + + # delay + sleep 10 + done + + if [ $EXIT_CODE -ne 0 ]; then + echo "Failed to add PPA after 5 attempts." + echo "Error: $OUTPUT" + exit 1 + fi + sudo apt-get update -qq sudo apt-get install -y php8.4 php8.4-curl php8.4-xml php8.4-mbstring php8.4-zip php8.4-ldap php8.4-gd sudo update-alternatives --set php /usr/bin/php8.4 @@ -515,4 +605,4 @@ jobs: run: | if [[ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" == "true" ]]; then exit 1 - fi \ No newline at end of file + fi