@@ -50,12 +50,19 @@ jobs:
5050
5151 runs-on : ${{ matrix.runner }}
5252
53- # NOTE: hardcode CUDA version here — GitHub Actions does not evaluate
54- # ${{ env.* }} in `container.image`. Keep this in sync with the
55- # workflow-level `env: RAPIDS_CUDA_VERSION` (used by rattler-build at
56- # runtime via the process environment).
53+ # NOTE: hardcoded CUDA version. Two reasons it has to be a literal:
54+ # 1. GitHub Actions doesn't evaluate ${{ env.* }} in `container.image`.
55+ # 2. NVIDIA only publishes patch-level tags on Docker Hub (e.g.
56+ # `12.9.1-devel-ubuntu24.04`). The shorthand `12.9-devel-ubuntu24.04`
57+ # does NOT exist as a manifest and pulls fail with `manifest unknown`.
58+ # The workflow-level `env: RAPIDS_CUDA_VERSION` ("12.9", major.minor) is
59+ # used for conda dep pinning inside recipes (cuda-version is keyed by
60+ # major.minor on conda), so the two values intentionally diverge: the
61+ # image gets the patch-level tag, the env var stays major.minor.
62+ # Bump both together when CUDA moves; verify a candidate tag with
63+ # `docker manifest inspect nvidia/cuda:<tag>` before committing.
5764 container :
58- image : nvidia/cuda:12.9-devel-ubuntu24.04
65+ image : nvidia/cuda:12.9.1 -devel-ubuntu24.04
5966
6067 steps :
6168 - name : Install system tools
@@ -116,12 +123,19 @@ jobs:
116123
117124 runs-on : ${{ matrix.runner }}
118125
119- # NOTE: hardcode CUDA version here — GitHub Actions does not evaluate
120- # ${{ env.* }} in `container.image`. Keep this in sync with the
121- # workflow-level `env: RAPIDS_CUDA_VERSION` (used by rattler-build at
122- # runtime via the process environment).
126+ # NOTE: hardcoded CUDA version. Two reasons it has to be a literal:
127+ # 1. GitHub Actions doesn't evaluate ${{ env.* }} in `container.image`.
128+ # 2. NVIDIA only publishes patch-level tags on Docker Hub (e.g.
129+ # `12.9.1-devel-ubuntu24.04`). The shorthand `12.9-devel-ubuntu24.04`
130+ # does NOT exist as a manifest and pulls fail with `manifest unknown`.
131+ # The workflow-level `env: RAPIDS_CUDA_VERSION` ("12.9", major.minor) is
132+ # used for conda dep pinning inside recipes (cuda-version is keyed by
133+ # major.minor on conda), so the two values intentionally diverge: the
134+ # image gets the patch-level tag, the env var stays major.minor.
135+ # Bump both together when CUDA moves; verify a candidate tag with
136+ # `docker manifest inspect nvidia/cuda:<tag>` before committing.
123137 container :
124- image : nvidia/cuda:12.9-devel-ubuntu24.04
138+ image : nvidia/cuda:12.9.1 -devel-ubuntu24.04
125139
126140 env :
127141 RAPIDS_PY_VERSION : ${{ matrix.python }}
0 commit comments