Skip to content

Commit 3f5ac08

Browse files
committed
ci: retry docker pull in unit-test pre-pull (transient registry timeouts)
1 parent b5aac0c commit 3f5ac08

3 files changed

Lines changed: 46 additions & 16 deletions

File tree

.github/workflows/unit-tests-internal.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,22 @@ jobs:
8383
- name: 🐳 Pre-pull testcontainer images
8484
if: ${{ env.DOCKERHUB_USERNAME }}
8585
run: |
86+
# Retry each pull - DockerHub registry timeouts are a recurring transient CI flake.
87+
pull() {
88+
for attempt in 1 2 3; do
89+
docker pull "$1" && return 0
90+
echo "::warning::docker pull $1 failed (attempt ${attempt}/3); retrying in 10s"
91+
sleep 10
92+
done
93+
echo "::error::docker pull $1 failed after 3 attempts"
94+
return 1
95+
}
8696
echo "Pre-pulling Docker images with authenticated session..."
87-
docker pull postgres:14
88-
docker pull clickhouse/clickhouse-server:25.4-alpine
89-
docker pull redis:7.2
90-
docker pull testcontainers/ryuk:0.14.0
91-
docker pull electricsql/electric:1.2.4
97+
pull postgres:14
98+
pull clickhouse/clickhouse-server:25.4-alpine
99+
pull redis:7.2
100+
pull testcontainers/ryuk:0.14.0
101+
pull electricsql/electric:1.2.4
92102
echo "Image pre-pull complete"
93103
94104
- name: 📥 Download deps

.github/workflows/unit-tests-packages.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,22 @@ jobs:
8383
- name: 🐳 Pre-pull testcontainer images
8484
if: ${{ env.DOCKERHUB_USERNAME }}
8585
run: |
86+
# Retry each pull - DockerHub registry timeouts are a recurring transient CI flake.
87+
pull() {
88+
for attempt in 1 2 3; do
89+
docker pull "$1" && return 0
90+
echo "::warning::docker pull $1 failed (attempt ${attempt}/3); retrying in 10s"
91+
sleep 10
92+
done
93+
echo "::error::docker pull $1 failed after 3 attempts"
94+
return 1
95+
}
8696
echo "Pre-pulling Docker images with authenticated session..."
87-
docker pull postgres:14
88-
docker pull clickhouse/clickhouse-server:25.4-alpine
89-
docker pull redis:7.2
90-
docker pull testcontainers/ryuk:0.14.0
91-
docker pull electricsql/electric:1.2.4
97+
pull postgres:14
98+
pull clickhouse/clickhouse-server:25.4-alpine
99+
pull redis:7.2
100+
pull testcontainers/ryuk:0.14.0
101+
pull electricsql/electric:1.2.4
92102
echo "Image pre-pull complete"
93103
94104
- name: 📥 Download deps

.github/workflows/unit-tests-webapp.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,23 @@ jobs:
8383
- name: 🐳 Pre-pull testcontainer images
8484
if: ${{ env.DOCKERHUB_USERNAME }}
8585
run: |
86+
# Retry each pull - DockerHub registry timeouts are a recurring transient CI flake.
87+
pull() {
88+
for attempt in 1 2 3; do
89+
docker pull "$1" && return 0
90+
echo "::warning::docker pull $1 failed (attempt ${attempt}/3); retrying in 10s"
91+
sleep 10
92+
done
93+
echo "::error::docker pull $1 failed after 3 attempts"
94+
return 1
95+
}
8696
echo "Pre-pulling Docker images with authenticated session..."
87-
docker pull postgres:14
88-
docker pull clickhouse/clickhouse-server:25.4-alpine
89-
docker pull redis:7.2
90-
docker pull testcontainers/ryuk:0.14.0
91-
docker pull electricsql/electric:1.2.4
92-
docker pull minio/minio:latest
97+
pull postgres:14
98+
pull clickhouse/clickhouse-server:25.4-alpine
99+
pull redis:7.2
100+
pull testcontainers/ryuk:0.14.0
101+
pull electricsql/electric:1.2.4
102+
pull minio/minio:latest
93103
echo "Image pre-pull complete"
94104
95105
- name: 📥 Download deps

0 commit comments

Comments
 (0)