From b074e18027a3aea968a33cdbe5bc6aa1f05b5fd5 Mon Sep 17 00:00:00 2001 From: Tomas Valenta <49156497+ValentaTomas@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:14:29 -0700 Subject: [PATCH 1/2] ci: pre-pull Docker Hub images with retries in start-services --- .github/actions/start-services/action.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/actions/start-services/action.yml b/.github/actions/start-services/action.yml index 5e57f3033b..b6de906372 100644 --- a/.github/actions/start-services/action.yml +++ b/.github/actions/start-services/action.yml @@ -30,6 +30,22 @@ inputs: runs: using: "composite" steps: + # Anonymous Docker Hub pulls from shared runners intermittently fail with + # "unauthorized: authentication required" (Hub rate limiting); the implicit + # pulls inside the service steps then abort the whole job. Pull everything + # up front with retries so a transient 401/429 can't kill the run. + - name: Pre-pull Docker Hub images + shell: bash + run: | + for image in postgres:latest redis:latest otel/opentelemetry-collector-contrib:0.146.0; do + for attempt in 1 2 3 4 5; do + docker pull --quiet "$image" && break + if [ "$attempt" = 5 ]; then echo "giving up on $image"; exit 1; fi + echo "pull of $image failed (attempt $attempt), retrying in $((attempt * 10))s..." + sleep $((attempt * 10)) + done + done + - name: Run PostgreSQL Database env: TESTS_E2B_API_KEY: "e2b_5ec17bd3933af21f80dc10bba686691c4fcd7057" From 1a51f6d33d3e5ae0813af8da066b776bf172f68f Mon Sep 17 00:00:00 2001 From: Tomas Valenta <49156497+ValentaTomas@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:46:17 -0700 Subject: [PATCH 2/2] ci: include clickhouse-server in the pre-pull list --- .github/actions/start-services/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/start-services/action.yml b/.github/actions/start-services/action.yml index b6de906372..84ee7b9074 100644 --- a/.github/actions/start-services/action.yml +++ b/.github/actions/start-services/action.yml @@ -37,7 +37,7 @@ runs: - name: Pre-pull Docker Hub images shell: bash run: | - for image in postgres:latest redis:latest otel/opentelemetry-collector-contrib:0.146.0; do + for image in postgres:latest redis:latest otel/opentelemetry-collector-contrib:0.146.0 clickhouse/clickhouse-server:25.4.5.24; do for attempt in 1 2 3 4 5; do docker pull --quiet "$image" && break if [ "$attempt" = 5 ]; then echo "giving up on $image"; exit 1; fi