Skip to content

Commit cc3c96e

Browse files
committed
ci: build and test local CUDA 12 bindings
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
1 parent 4e22130 commit cc3c96e

7 files changed

Lines changed: 246 additions & 19 deletions

File tree

‎.github/workflows/build-wheel.yml‎

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@ jobs:
8383
run: echo "::add-matcher::.github/matchers/compiler.json"
8484

8585
- name: Install rapidsai/sccache
86-
if: ${{ startsWith(inputs.host-platform, 'linux') && (env.BUILD_BINDINGS == 'true' || env.BUILD_CORE == 'true') }}
86+
if: ${{ startsWith(inputs.host-platform, 'linux') && (env.BUILD_BINDINGS == 'true' || env.BUILD_CORE == 'true' || env.TEST_BINDINGS == 'true') }}
8787
uses: ./.github/actions/install-sccache
8888

8989
# The runner only exposes these values to actions, not to `run:` steps or
9090
# the cibuildwheel container, so re-export them for sccache's GHA backend.
9191
# xref: https://github.com/orgs/community/discussions/42856#discussioncomment-7678867
9292
- name: Adding addtional GHA cache-related env vars
93-
if: ${{ env.BUILD_BINDINGS == 'true' || env.BUILD_CORE == 'true' }}
93+
if: ${{ env.BUILD_BINDINGS == 'true' || env.BUILD_CORE == 'true' || env.TEST_BINDINGS == 'true' }}
9494
uses: actions/github-script@v9
9595
with:
9696
script: |
@@ -144,6 +144,9 @@ jobs:
144144
$env:Path += ";$((Get-Location).Path)\\$env:YQ_DIR"
145145
yq --version
146146
147+
- name: Install CI tool dependencies
148+
run: python -m pip install -e ./ci
149+
147150
- name: Set environment variables
148151
env:
149152
CUDA_VER: ${{ inputs.cuda-version }}
@@ -152,6 +155,12 @@ jobs:
152155
SHA: ${{ github.sha }}
153156
run: ./ci/tools/env-vars build
154157

158+
- name: Prepare local maintenance SCM milestone
159+
if: ${{ !inputs.single-cuda-major && (env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }}
160+
run: |
161+
python -m ci.tools.bindings_scm_version \
162+
--package-root "${MAINTENANCE_BINDINGS_ROOT}" --sha "${{ github.sha }}"
163+
155164
- name: Dump environment
156165
run: |
157166
env
@@ -195,7 +204,7 @@ jobs:
195204
twine check --strict cuda_pathfinder/*.whl
196205
197206
- name: Constrain builds to the local cuda.pathfinder wheel
198-
if: ${{ env.BUILD_BINDINGS == 'true' }}
207+
if: ${{ env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true' }}
199208
run: |
200209
pathfinder_wheels=(cuda_pathfinder/cuda_pathfinder-*.whl)
201210
test "${#pathfinder_wheels[@]}" -eq 1
@@ -232,7 +241,7 @@ jobs:
232241
output-dir: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
233242
extras: uv
234243
python-path: ${{ steps.host-python.outputs.python-path }}
235-
env:
244+
env: &bindings-wheel-env
236245
CIBW_BUILD: ${{ env.CIBW_BUILD }}
237246
# build[uv]: same PEP 517 orchestration, with uv instead of pip.
238247
# extras: uv puts uv on PATH (required on Windows).
@@ -517,7 +526,7 @@ jobs:
517526

518527
# Note: This overwrites CUDA_PATH etc
519528
- name: Set up mini CTK
520-
if: ${{ !inputs.single-cuda-major && (env.BUILD_CORE == 'true' || env.TEST_CORE == 'true') }}
529+
if: ${{ !inputs.single-cuda-major && (env.BUILD_CORE == 'true' || env.TEST_CORE == 'true' || env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }}
521530
uses: ./.github/actions/fetch_ctk
522531
continue-on-error: false
523532
with:
@@ -542,6 +551,47 @@ jobs:
542551
${{ env.CUDA_CORE_TEST_BINARIES_DIR }}/*.lib
543552
if-no-files-found: error
544553

554+
- name: Build maintenance cuda.bindings wheel
555+
if: ${{ !inputs.single-cuda-major && (env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }}
556+
uses: pypa/cibuildwheel@b9e566a2b284570af229f6c2a33673410d0389a3 # v4.3.4
557+
with:
558+
package-dir: ./${{ env.MAINTENANCE_BINDINGS_ROOT }}/
559+
output-dir: ${{ env.MAINTENANCE_BINDINGS_ARTIFACTS_DIR }}
560+
extras: uv
561+
python-path: ${{ steps.host-python.outputs.python-path }}
562+
env: *bindings-wheel-env
563+
564+
- name: Check maintenance cuda.bindings wheel
565+
if: ${{ !inputs.single-cuda-major && (env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }}
566+
run: twine check --strict "${MAINTENANCE_BINDINGS_ARTIFACTS_DIR}"/*.whl
567+
568+
- name: Upload maintenance cuda.bindings wheel
569+
if: ${{ !inputs.single-cuda-major && (env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }}
570+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
571+
with:
572+
name: ${{ env.MAINTENANCE_BINDINGS_ARTIFACT_NAME }}
573+
path: ${{ env.MAINTENANCE_BINDINGS_ARTIFACTS_DIR }}/*.whl
574+
if-no-files-found: error
575+
576+
- name: Build maintenance cuda.bindings Cython tests
577+
if: ${{ !inputs.single-cuda-major && env.TEST_BINDINGS == 'true' }}
578+
run: |
579+
pip uninstall -y cuda-bindings
580+
bindings_wheels=("${MAINTENANCE_BINDINGS_ARTIFACTS_DIR}"/*.whl)
581+
test "${#bindings_wheels[@]}" -eq 1
582+
python -m pip install "${bindings_wheels[0]}" --group "${MAINTENANCE_BINDINGS_ROOT}/pyproject.toml:test"
583+
pushd "${MAINTENANCE_BINDINGS_CYTHON_TESTS_DIR}"
584+
bash build_tests.sh
585+
popd
586+
587+
- name: Upload maintenance cuda.bindings Cython tests
588+
if: ${{ !inputs.single-cuda-major && env.TEST_BINDINGS == 'true' }}
589+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
590+
with:
591+
name: ${{ env.MAINTENANCE_BINDINGS_ARTIFACT_NAME }}-tests
592+
path: ${{ env.MAINTENANCE_BINDINGS_CYTHON_TESTS_DIR }}/test_*${{ env.PY_EXT_SUFFIX }}
593+
if-no-files-found: error
594+
545595
- name: Look up prior-branch cuda.bindings run ID
546596
id: prior-bindings
547597
if: ${{ !inputs.single-cuda-major && env.BUILD_CORE == 'true' }}

‎.github/workflows/ci.yml‎

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,23 @@ jobs:
3636
WINDOWS_ARM64_SUPPORTED: ${{ steps.get-vars.outputs.windows_arm64_supported }}
3737
WINDOWS_ARM64_SINGLE_CUDA_MAJOR: ${{ steps.get-vars.outputs.windows_arm64_single_cuda_major }}
3838
PYTHON_SUPPORTED: ${{ steps.get-vars.outputs.python_supported }}
39+
BINDINGS_CONFIG: ${{ steps.get-vars.outputs.bindings_config }}
3940
steps:
4041
- name: Checkout repository
4142
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4243
with:
4344
fetch-depth: 1
45+
- name: Set up Python for CI tools
46+
uses: ./.github/actions/setup-hardened-python
47+
with:
48+
python-version: "3.12"
49+
- name: Install CI tool dependencies
50+
run: python -m pip install -e ./ci
4451
- name: Get CUDA build versions
4552
id: get-vars
4653
run: |
54+
bindings_config=$(python -m ci.tools.bindings_config)
55+
echo "bindings_config=$bindings_config" >> "$GITHUB_OUTPUT"
4756
cuda_build_ver=$(yq '.cuda.build.version' ci/versions.yml)
4857
echo "cuda_build_ver=$cuda_build_ver" >> $GITHUB_OUTPUT
4958
@@ -623,6 +632,86 @@ jobs:
623632
nruns: ${{ (github.event_name == 'schedule' && 5) || 1}}
624633
workplan: ${{ needs.detect-changes.outputs.workplan }}
625634

635+
test-maintenance-bindings-linux-64:
636+
name: Maintenance bindings (linux-64)
637+
if: ${{ github.repository_owner == 'nvidia' &&
638+
!fromJSON(needs.should-skip.outputs.skip) &&
639+
!fromJSON(needs.should-skip.outputs.doc-only) &&
640+
fromJSON(needs.detect-changes.outputs.workplan).modules.bindings.needs_test &&
641+
fromJSON(needs.detect-changes.outputs.workplan).jobs.platforms.linux }}
642+
permissions:
643+
actions: read
644+
contents: read
645+
needs:
646+
- ci-vars
647+
- should-skip
648+
- detect-changes
649+
- build-linux-64
650+
secrets: inherit
651+
uses: ./.github/workflows/test-wheel-linux.yml
652+
with:
653+
build-type: ${{ startsWith(github.ref_name, 'pull-request/') && 'pull-request' || (github.event_name == 'schedule' && 'nightly' || 'branch') }}
654+
host-platform: linux-64
655+
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }}
656+
bindings-config: ${{ needs.ci-vars.outputs.BINDINGS_CONFIG }}
657+
bindings-only: true
658+
nruns: ${{ (github.event_name == 'schedule' && 5) || 1 }}
659+
workplan: ${{ needs.detect-changes.outputs.workplan }}
660+
661+
test-maintenance-bindings-linux-aarch64:
662+
name: Maintenance bindings (linux-aarch64)
663+
if: ${{ github.repository_owner == 'nvidia' &&
664+
!fromJSON(needs.should-skip.outputs.skip) &&
665+
!fromJSON(needs.should-skip.outputs.doc-only) &&
666+
fromJSON(needs.detect-changes.outputs.workplan).modules.bindings.needs_test &&
667+
fromJSON(needs.detect-changes.outputs.workplan).jobs.platforms.linux }}
668+
permissions:
669+
actions: read
670+
contents: read
671+
needs:
672+
- ci-vars
673+
- should-skip
674+
- detect-changes
675+
- build-linux-64
676+
- build-linux-aarch64
677+
secrets: inherit
678+
uses: ./.github/workflows/test-wheel-linux.yml
679+
with:
680+
build-type: ${{ startsWith(github.ref_name, 'pull-request/') && 'pull-request' || (github.event_name == 'schedule' && 'nightly' || 'branch') }}
681+
host-platform: linux-aarch64
682+
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }}
683+
bindings-config: ${{ needs.ci-vars.outputs.BINDINGS_CONFIG }}
684+
bindings-only: true
685+
nruns: ${{ (github.event_name == 'schedule' && 5) || 1 }}
686+
workplan: ${{ needs.detect-changes.outputs.workplan }}
687+
688+
test-maintenance-bindings-windows:
689+
name: Maintenance bindings (win-64)
690+
if: ${{ github.repository_owner == 'nvidia' &&
691+
!fromJSON(needs.should-skip.outputs.skip) &&
692+
!fromJSON(needs.should-skip.outputs.doc-only) &&
693+
fromJSON(needs.detect-changes.outputs.workplan).modules.bindings.needs_test &&
694+
fromJSON(needs.detect-changes.outputs.workplan).jobs.platforms.windows }}
695+
permissions:
696+
actions: read
697+
contents: read
698+
needs:
699+
- ci-vars
700+
- should-skip
701+
- detect-changes
702+
- build-linux-64
703+
- build-windows
704+
secrets: inherit
705+
uses: ./.github/workflows/test-wheel-windows.yml
706+
with:
707+
build-type: ${{ startsWith(github.ref_name, 'pull-request/') && 'pull-request' || (github.event_name == 'schedule' && 'nightly' || 'branch') }}
708+
host-platform: win-64
709+
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }}
710+
bindings-config: ${{ needs.ci-vars.outputs.BINDINGS_CONFIG }}
711+
bindings-only: true
712+
nruns: ${{ (github.event_name == 'schedule' && 5) || 1 }}
713+
workplan: ${{ needs.detect-changes.outputs.workplan }}
714+
626715
doc:
627716
name: Docs
628717
if: ${{ github.repository_owner == 'nvidia' }}
@@ -657,6 +746,9 @@ jobs:
657746
- test-linux-64
658747
- test-linux-aarch64
659748
- test-windows
749+
- test-maintenance-bindings-linux-64
750+
- test-maintenance-bindings-linux-aarch64
751+
- test-maintenance-bindings-windows
660752
- api-check-core-vs-release
661753
- api-check-core-vs-base
662754
- doc
@@ -684,6 +776,7 @@ jobs:
684776
windows_selected="${{ needs.detect-changes.outputs.workplan && fromJSON(needs.detect-changes.outputs.workplan).jobs.platforms.windows || false }}"
685777
windows_arm64_supported="${{ needs.ci-vars.outputs.WINDOWS_ARM64_SUPPORTED }}"
686778
build_selected="${{ needs.detect-changes.outputs.workplan && fromJSON(needs.detect-changes.outputs.workplan).jobs.sdist_tests || false }}"
779+
maintenance_bindings_selected="${{ needs.detect-changes.outputs.workplan && fromJSON(needs.detect-changes.outputs.workplan).modules.bindings.needs_test || false }}"
687780
run_core_api_check="${{ needs.detect-changes.outputs.workplan && fromJSON(needs.detect-changes.outputs.workplan).jobs.core_api_checks || false }}"
688781
is_pr="${{ startsWith(github.ref_name, 'pull-request/') }}"
689782
status="success"
@@ -734,6 +827,16 @@ jobs:
734827
check_result "test-linux-aarch64" "$linux_expected"
735828
check_result "test-windows" "$windows_expected"
736829
830+
maintenance_linux_expected="skipped"
831+
maintenance_windows_expected="skipped"
832+
if [[ "$maintenance_bindings_selected" == "true" ]]; then
833+
maintenance_linux_expected="$linux_expected"
834+
maintenance_windows_expected="$windows_expected"
835+
fi
836+
check_result "test-maintenance-bindings-linux-64" "$maintenance_linux_expected"
837+
check_result "test-maintenance-bindings-linux-aarch64" "$maintenance_linux_expected"
838+
check_result "test-maintenance-bindings-windows" "$maintenance_windows_expected"
839+
737840
# API compatibility checks run for cuda_core source changes and for
738841
# conservative full runs when reusable base artifacts are unavailable.
739842
expected="skipped"

‎.github/workflows/test-wheel-linux.yml‎

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ on:
1616
build-ctk-ver:
1717
type: string
1818
required: true
19+
bindings-config:
20+
description: Normalized bindings registry for maintenance-only tests.
21+
type: string
22+
default: ''
23+
bindings-only:
24+
description: Test this run's maintenance bindings wheel and Cython extensions.
25+
type: boolean
26+
default: false
1927
matrix_filter:
2028
type: string
2129
default: "."
@@ -55,6 +63,8 @@ jobs:
5563
runs-on: ubuntu-latest
5664
env:
5765
BUILD_TYPE: ${{ inputs.build-type }}
66+
BINDINGS_CONFIG: ${{ inputs.bindings-config }}
67+
BINDINGS_ONLY: ${{ inputs.bindings-only }}
5868
ARCH: ${{ (inputs.host-platform == 'linux-64' && 'amd64') ||
5969
(inputs.host-platform == 'linux-aarch64' && 'arm64') }}
6070
outputs:
@@ -83,6 +93,14 @@ jobs:
8393
# Read base matrix from YAML file for the specific architecture
8494
TEST_MATRIX=$(yq -o json ".linux[\"${MATRIX_TYPE}\"] | map(select(.ARCH == \"${ARCH}\"))" ci/test-matrix.yml)
8595
96+
if [[ "$BINDINGS_ONLY" == "true" ]]; then
97+
TEST_MATRIX=$(jq -c --argjson config "$BINDINGS_CONFIG" '
98+
($config.package_roots[] | select(.release_status == "maintenance")) as $package
99+
| map(select(.CUDA_VER == $package.toolkit_version)
100+
| . + {BINDINGS_ROOT: $package.package_root})
101+
' <<< "$TEST_MATRIX")
102+
fi
103+
86104
# Apply matrix filter; reject custom DRIVER + FLAVOR=wsl (the
87105
# in-container driver swap doesn't work under WSL); add a
88106
# RUNNER_DRIVER field that maps any custom version back to
@@ -99,10 +117,10 @@ jobs:
99117
100118
test:
101119
env:
102-
TEST_PATHFINDER: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.pathfinder.needs_test }}
103-
TEST_BINDINGS: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.bindings.needs_test }}
104-
TEST_CORE: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.core.needs_test }}
105-
TEST_PYTHON: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.python.needs_test }}
120+
TEST_PATHFINDER: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.pathfinder.needs_test) }}
121+
TEST_BINDINGS: ${{ inputs.bindings-only || inputs.workplan == '' || fromJSON(inputs.workplan).modules.bindings.needs_test }}
122+
TEST_CORE: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.core.needs_test) }}
123+
TEST_PYTHON: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.python.needs_test) }}
106124
name: Python ${{ matrix.PY_VER }}, CUDA ${{ matrix.CUDA_VER }} (${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}), GPU ${{ matrix.GPU }}${{ matrix.GPU_COUNT != '1' && format(' (x{0})', matrix.GPU_COUNT) || '' }}${{ matrix.FLAVOR && format(', {0}', matrix.FLAVOR) || '' }}${{ matrix.ENV.TORCH_VER && format(', {0}+{1}', matrix.ENV.TORCH_VER, matrix.ENV.TORCH_CUDA) || '' }}${{ matrix.ENV.MODE == 'nightly-numba-cuda' && ', latest' || '' }}
107125
timeout-minutes: 60
108126
needs: compute-matrix
@@ -168,7 +186,9 @@ jobs:
168186

169187
- name: Set environment variables
170188
env:
171-
BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }}
189+
BUILD_CUDA_VER: ${{ inputs.bindings-only && matrix.CUDA_VER || inputs.build-ctk-ver }}
190+
CUDA_BINDINGS_ROOT: ${{ matrix.BINDINGS_ROOT || 'cuda_bindings_13' }}
191+
BINDINGS_ARTIFACT_PREFIX: ${{ inputs.bindings-only && 'maintenance-bindings' || 'cuda-bindings' }}
172192
CUDA_VER: ${{ matrix.CUDA_VER }}
173193
HOST_PLATFORM: ${{ inputs.host-platform }}
174194
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}

‎.github/workflows/test-wheel-windows.yml‎

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ on:
1616
build-ctk-ver:
1717
type: string
1818
required: true
19+
bindings-config:
20+
description: Normalized bindings registry for maintenance-only tests.
21+
type: string
22+
default: ''
23+
bindings-only:
24+
description: Test this run's maintenance bindings wheel and Cython extensions.
25+
type: boolean
26+
default: false
1927
matrix_filter:
2028
type: string
2129
default: "."
@@ -54,6 +62,8 @@ jobs:
5462
shell: bash --noprofile --norc -xeuo pipefail {0}
5563
env:
5664
BUILD_TYPE: ${{ inputs.build-type }}
65+
BINDINGS_CONFIG: ${{ inputs.bindings-config }}
66+
BINDINGS_ONLY: ${{ inputs.bindings-only }}
5767
ARCH: ${{ (inputs.host-platform == 'win-64' && 'amd64') }}
5868
outputs:
5969
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }}
@@ -79,6 +89,14 @@ jobs:
7989
# Read base matrix from YAML file for the specific architecture
8090
TEST_MATRIX=$(yq -o json ".windows[\"${MATRIX_TYPE}\"] | map(select(.ARCH == \"${ARCH}\"))" ci/test-matrix.yml)
8191
92+
if [[ "$BINDINGS_ONLY" == "true" ]]; then
93+
TEST_MATRIX=$(jq -c --argjson config "$BINDINGS_CONFIG" '
94+
($config.package_roots[] | select(.release_status == "maintenance")) as $package
95+
| map(select(.CUDA_VER == $package.toolkit_version)
96+
| . + {BINDINGS_ROOT: $package.package_root})
97+
' <<< "$TEST_MATRIX")
98+
fi
99+
82100
# Apply matrix filter; add a RUNNER_DRIVER field that maps any
83101
# custom DRIVER version back to 'latest' (install_gpu_driver.ps1
84102
# swaps the driver itself, so the runner must be the one that
@@ -89,10 +107,10 @@ jobs:
89107
90108
test:
91109
env:
92-
TEST_PATHFINDER: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.pathfinder.needs_test }}
93-
TEST_BINDINGS: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.bindings.needs_test }}
94-
TEST_CORE: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.core.needs_test }}
95-
TEST_PYTHON: ${{ inputs.workplan == '' || fromJSON(inputs.workplan).modules.python.needs_test }}
110+
TEST_PATHFINDER: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.pathfinder.needs_test) }}
111+
TEST_BINDINGS: ${{ inputs.bindings-only || inputs.workplan == '' || fromJSON(inputs.workplan).modules.bindings.needs_test }}
112+
TEST_CORE: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.core.needs_test) }}
113+
TEST_PYTHON: ${{ !inputs.bindings-only && (inputs.workplan == '' || fromJSON(inputs.workplan).modules.python.needs_test) }}
96114
name: Python ${{ matrix.PY_VER }}, CUDA ${{ matrix.CUDA_VER }} (${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}), GPU ${{ matrix.GPU }}${{ matrix.GPU_COUNT != '1' && format(' (x{0})', matrix.GPU_COUNT) || '' }} (${{ matrix.DRIVER_MODE }})${{ matrix.ENV.TORCH_VER && format(', {0}+{1}', matrix.ENV.TORCH_VER, matrix.ENV.TORCH_CUDA) || '' }}${{ matrix.ENV.MODE == 'nightly-numba-cuda' && ', latest' || '' }}
97115
timeout-minutes: 60
98116
# The build stage could fail but we want the CI to keep moving.
@@ -157,7 +175,9 @@ jobs:
157175
158176
- name: Set environment variables
159177
env:
160-
BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }}
178+
BUILD_CUDA_VER: ${{ inputs.bindings-only && matrix.CUDA_VER || inputs.build-ctk-ver }}
179+
CUDA_BINDINGS_ROOT: ${{ matrix.BINDINGS_ROOT || 'cuda_bindings_13' }}
180+
BINDINGS_ARTIFACT_PREFIX: ${{ inputs.bindings-only && 'maintenance-bindings' || 'cuda-bindings' }}
161181
CUDA_VER: ${{ matrix.CUDA_VER }}
162182
HOST_PLATFORM: ${{ inputs.host-platform }}
163183
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}

0 commit comments

Comments
 (0)