From c713c7f58c80c6048f77e777f275bbcf38114856 Mon Sep 17 00:00:00 2001 From: Pepijn Date: Thu, 9 Apr 2026 15:17:39 +0200 Subject: [PATCH] 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) --- .github/workflows/benchmark_tests.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/benchmark_tests.yml b/.github/workflows/benchmark_tests.yml index c3d274fd3..c7eb5c202 100644 --- a/.github/workflows/benchmark_tests.yml +++ b/.github/workflows/benchmark_tests.yml @@ -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: