From 9c65623a6b88bf2ffb879b089ec1ccb1eaa9a078 Mon Sep 17 00:00:00 2001 From: Critsium Date: Sun, 2 Aug 2026 16:56:55 +0800 Subject: [PATCH] ci: pull CI images from the domestic mirror on self-hosted runners The self-hosted runner pools give every job a fresh pod, so no Docker layer cache is ever reused: in 37 consecutive CUDA jobs, 37 distinct runner pods pulled all 17 layers cold ("Already exists" never appears). Every GPU run therefore pays a full 3.98 GB pull from ghcr.io, which takes 8.7 min at best. When the link degrades, the two nvidia/cuda base layers (2343 MB and 1099 MB, together 86% of the image) hit connection failures and restart from scratch, since a failed blob download is not resumed. Job 91378883548 retried them 5 and 4 times respectively and spent 39m09s in docker pull alone, which is the whole of its 41-minute "Initialize containers" step. registry.dp.tech is the Aliyun (cn-zhangjiakou) mirror already published by devcontainer.yml. It is anonymously pullable and serves an identical digest, so no credentials are needed and the images are unchanged: abacus-cuda resolves to sha256:499d7bdc7f9f..., the same digest ghcr.io returned in the pull log above. Only workflows on self-hosted runners are switched. Those on ubuntu-latest (ase_plugin_test, build_test_cmake, build_test_makefile, pytest) keep ghcr.io, which is the fast path from GitHub-hosted runners. Co-Authored-By: Claude Opus 5 --- .github/workflows/coverage.yml | 2 +- .github/workflows/cuda.yml | 2 +- .github/workflows/dynamic.yml | 2 +- .github/workflows/performance.yml | 2 +- .github/workflows/test.yml | 2 +- .github/workflows/toolchain_full.yaml | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a437a8b19e..af15e74a57 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -14,7 +14,7 @@ jobs: test-coverage: name: Generate Coverage Report runs-on: X64 - container: ghcr.io/deepmodeling/abacus-gnu + container: registry.dp.tech/deepmodeling/abacus-gnu steps: - name: Checkout uses: actions/checkout@v7 diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index 2216ab9873..afc8f4375e 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -18,7 +18,7 @@ jobs: runs-on: gpu if: github.repository_owner == 'deepmodeling' container: - image: ghcr.io/deepmodeling/abacus-cuda + image: registry.dp.tech/deepmodeling/abacus-cuda volumes: - /tmp/ccache:/github/home/.ccache options: --gpus all diff --git a/.github/workflows/dynamic.yml b/.github/workflows/dynamic.yml index a9235d1cfd..e29cc51444 100644 --- a/.github/workflows/dynamic.yml +++ b/.github/workflows/dynamic.yml @@ -14,7 +14,7 @@ jobs: name: Dynamic analysis runs-on: X64 if: github.repository_owner == 'deepmodeling' - container: ghcr.io/deepmodeling/abacus-gnu + container: registry.dp.tech/deepmodeling/abacus-gnu steps: - name: Checkout uses: actions/checkout@v7 diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 841b5f9344..accdfe23d8 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: tag: ["gnu", "intel"] - container: ghcr.io/deepmodeling/abacus-${{ matrix.tag }} + container: registry.dp.tech/deepmodeling/abacus-${{ matrix.tag }} timeout-minutes: 2880 steps: - name: Checkout diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 18b0b1a7a8..0cd45295fe 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: runs-on: X64 if: github.repository_owner == 'deepmodeling' container: - image: ghcr.io/deepmodeling/abacus-gnu + image: registry.dp.tech/deepmodeling/abacus-gnu volumes: - /tmp/ccache:/github/home/.ccache steps: diff --git a/.github/workflows/toolchain_full.yaml b/.github/workflows/toolchain_full.yaml index 611b3e93b2..3c765d2fe8 100644 --- a/.github/workflows/toolchain_full.yaml +++ b/.github/workflows/toolchain_full.yaml @@ -18,7 +18,7 @@ jobs: if: contains(inputs.variants || 'gnu,intel,cuda', 'gnu') runs-on: X64 container: - image: ghcr.io/deepmodeling/abacus-gnu + image: registry.dp.tech/deepmodeling/abacus-gnu steps: - name: Checkout uses: actions/checkout@v7 @@ -57,7 +57,7 @@ jobs: if: contains(inputs.variants || 'gnu,intel,cuda', 'intel') runs-on: X64 container: - image: ghcr.io/deepmodeling/abacus-intel + image: registry.dp.tech/deepmodeling/abacus-intel steps: - name: Checkout uses: actions/checkout@v7