fix(ci): add Docker Hub login to avoid pull rate limits

Anonymous pulls from Docker Hub are rate-limited to 100/6h, which
fails when multiple benchmark jobs pull nvidia/cuda in parallel.
Add docker/login-action step (conditional on DOCKERHUB_USERNAME var)
to authenticate and get 200 pulls/6h.

Setup: add DOCKERHUB_USERNAME as a repository variable and
DOCKERHUB_TOKEN as a repository secret in GitHub Settings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-04-09 15:17:39 +02:00
parent 9a84ae7b61
commit c713c7f58c
+16
View File
@@ -83,6 +83,15 @@ jobs:
with:
cache-binary: false
# Authenticate to Docker Hub to avoid anonymous pull rate limits
# (100 pulls/6h anonymous vs 200 pulls/6h authenticated).
- name: Login to Docker Hub
if: ${{ vars.DOCKERHUB_USERNAME != '' }}
uses: docker/login-action@v3 # zizmor: ignore[unpinned-uses]
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Build the benchmark-specific image. Layer cache uses GHA cache (persists
# across runners). The Dockerfile separates dep-install from source-copy,
# so code-only changes skip the slow uv-sync layer entirely.
@@ -240,6 +249,13 @@ jobs:
with:
cache-binary: false
- name: Login to Docker Hub
if: ${{ vars.DOCKERHUB_USERNAME != '' }}
uses: docker/login-action@v3 # zizmor: ignore[unpinned-uses]
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build MetaWorld benchmark image
uses: docker/build-push-action@v6 # zizmor: ignore[unpinned-uses]
with: