From 724bc864d39e7fbca96de568d90bd23d72ed0165 Mon Sep 17 00:00:00 2001 From: Ralf Juengling Date: Wed, 4 Nov 2026 09:23:36 -0800 Subject: [PATCH 1/3] ci: install cuda-gdb in the default fetch_ctk toolkit cuda_core's test_cuda_gdb_shows_nvrtc_debug_source_lines skips when cuda-gdb is not on PATH, which is always the case with the mini CTK. Adding cuda_gdb (about 100 MB, Linux only) to the default components lets the test run in every Linux job that uses fetch_ctk's default list. fetch_ctk already skips components a platform does not publish, so Windows jobs are unchanged. Signed-off-by: Ralf Juengling --- .github/actions/fetch_ctk/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/fetch_ctk/action.yml b/.github/actions/fetch_ctk/action.yml index 65b05a66acf..2b2e41e2987 100644 --- a/.github/actions/fetch_ctk/action.yml +++ b/.github/actions/fetch_ctk/action.yml @@ -14,7 +14,7 @@ inputs: cuda-components: description: "A list of the CTK components to install as a comma-separated list. e.g. 'cuda_nvcc,cuda_nvrtc,cuda_cudart'" required: false - default: "cuda_nvcc,cuda_cudart,cuda_crt,libnvvm,cuda_nvrtc,cuda_profiler_api,cuda_cccl,cuda_cupti,libnvjitlink,libcufile,libnvfatbin,libcudla" + default: "cuda_nvcc,cuda_cudart,cuda_crt,libnvvm,cuda_nvrtc,cuda_profiler_api,cuda_cccl,cuda_cupti,libnvjitlink,libcufile,libnvfatbin,libcudla,cuda_gdb" cuda-path: description: "where the CTK components will be installed to, relative to $PWD" required: false From 30cb707925c3dcb91342e6625eec3f60b85c42ca Mon Sep 17 00:00:00 2001 From: Ralf Juengling Date: Fri, 6 Nov 2026 13:39:33 -0800 Subject: [PATCH 2/3] ci: install cuda-gdb only in cuda.core local-CTK jobs Adding cuda_gdb to fetch_ctk's default cuda-components made every Linux job download ~100 MB it does not use (build, docs, coverage, sdist, and test jobs that do not run the cuda-gdb test), and busted the fetch_ctk cache key for all of them. Revert the default-list change. Instead, mirror what #3397 did for cuda_sanitizer_api: a second fetch_ctk call with install-mode: add and cuda-components: "cuda_gdb", gated on LOCAL_CTK == '1' && TEST_CORE == 'true' so only local-CTK jobs that run the cuda.core test fetch it. cuda-gdb has no Windows build, so test-wheel-windows.yml is unchanged. Signed-off-by: Ralf Juengling --- .github/actions/fetch_ctk/action.yml | 2 +- .github/workflows/test-wheel-linux.yml | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/actions/fetch_ctk/action.yml b/.github/actions/fetch_ctk/action.yml index 0e0b800ad5f..034f3c416f8 100644 --- a/.github/actions/fetch_ctk/action.yml +++ b/.github/actions/fetch_ctk/action.yml @@ -14,7 +14,7 @@ inputs: cuda-components: description: "A list of the CTK components to install as a comma-separated list. e.g. 'cuda_nvcc,cuda_nvrtc,cuda_cudart'" required: false - default: "cuda_nvcc,cuda_cudart,cuda_crt,libnvvm,cuda_nvrtc,cuda_profiler_api,cuda_cccl,cuda_cupti,libnvjitlink,libcufile,libnvfatbin,libcudla,cuda_gdb" + default: "cuda_nvcc,cuda_cudart,cuda_crt,libnvvm,cuda_nvrtc,cuda_profiler_api,cuda_cccl,cuda_cupti,libnvjitlink,libcufile,libnvfatbin,libcudla" cuda-path: description: "where the CTK components will be installed to, relative to $PWD" required: false diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index 9a7ae677a5c..30aa9c41c62 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -366,6 +366,20 @@ jobs: host-platform: ${{ inputs.host-platform }} cuda-version: ${{ matrix.CUDA_VER }} + - name: Set up cuda_gdb + # cuda-gdb is Linux-only and not in the default mini CTK. Install it on + # top of the mini CTK only for local-CTK jobs that run the cuda.core + # test that needs it, instead of adding it to the default component + # list (which would make every Linux job download ~100 MB it won't use). + if: ${{ matrix.LOCAL_CTK == '1' && env.TEST_CORE == 'true' }} + uses: ./.github/actions/fetch_ctk + continue-on-error: false + with: + host-platform: ${{ inputs.host-platform }} + cuda-version: ${{ matrix.CUDA_VER }} + cuda-components: "cuda_gdb" + install-mode: add + - name: Set up cuda_sanitizer_api if: ${{ (env.TEST_BINDINGS == 'true' || env.TEST_CORE == 'true') && env.SETUP_SANITIZER == '1' }} uses: ./.github/actions/fetch_ctk From f439dbeee8ec6c7bb9ea420a0c01552ee7a21012 Mon Sep 17 00:00:00 2001 From: Ralf Juengling Date: Fri, 6 Nov 2026 13:48:54 -0800 Subject: [PATCH 3/3] ci: load fetch_ctk for cuda_gdb from the workflow commit Nightly runs check out an older inputs.sha, so ./ can resolve to a fetch_ctk that predates install-mode. That copy would ignore install-mode: add and empty the mini CTK. Use $/ so the action comes from the workflow's commit. Signed-off-by: Ralf Juengling --- .github/workflows/test-wheel-linux.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index 30aa9c41c62..61f969c7942 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -367,12 +367,10 @@ jobs: cuda-version: ${{ matrix.CUDA_VER }} - name: Set up cuda_gdb - # cuda-gdb is Linux-only and not in the default mini CTK. Install it on - # top of the mini CTK only for local-CTK jobs that run the cuda.core - # test that needs it, instead of adding it to the default component - # list (which would make every Linux job download ~100 MB it won't use). + # $/ loads the action from the workflow's commit: the inputs.sha + # checkout can predate install-mode, and ./ would then wipe the mini CTK. if: ${{ matrix.LOCAL_CTK == '1' && env.TEST_CORE == 'true' }} - uses: ./.github/actions/fetch_ctk + uses: $/.github/actions/fetch_ctk continue-on-error: false with: host-platform: ${{ inputs.host-platform }}