diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c28199b7..1de35923 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -164,7 +164,19 @@ jobs: | docker compose -f docker-compose.yml -f .github/docker-compose.ci.yml exec -T php1 tar -C /var/www/html -xf - - name: Resolve dependencies - run: docker compose -f docker-compose.yml -f .github/docker-compose.ci.yml exec -T php1 sh -lc "cd /var/www/html && composer install --no-interaction --prefer-dist --no-progress" + run: | + set -euo pipefail + for attempt in 1 2 3; do + if docker compose -f docker-compose.yml -f .github/docker-compose.ci.yml exec -T php1 sh -lc "cd /var/www/html && composer install --no-interaction --prefer-dist --no-progress"; then + exit 0 + fi + if [ "$attempt" -eq 3 ]; then + exit 1 + fi + sleep_seconds=$((attempt * 5)) + echo "composer install failed; retrying in ${sleep_seconds}s (attempt $((attempt + 1))/3)" >&2 + sleep "$sleep_seconds" + done - name: Verify edge gateway test files run: > diff --git a/scripts/php-ci-test.sh b/scripts/php-ci-test.sh index 18ba43d7..e3438efe 100644 --- a/scripts/php-ci-test.sh +++ b/scripts/php-ci-test.sh @@ -112,7 +112,8 @@ tar \ -C services/nginx/app -cf - . \ | docker compose $compose_files exec -T php1 tar -C /var/www/html -xf - -docker compose $compose_files exec -T php1 sh -lc \ +retry_command "${PHP_CI_COMPOSER_RETRIES:-3}" \ + docker compose $compose_files exec -T php1 sh -lc \ 'cd /var/www/html && composer install --no-interaction --prefer-dist --no-progress' docker compose $compose_files exec -T php1 sh -lc \