@@ -34,86 +34,43 @@ jobs:
3434 outputs :
3535 MATRIX : ${{ steps.compute-matrix.outputs.MATRIX }}
3636 steps :
37+ - name : Checkout ${{ github.event.repository.name }}
38+ uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
39+ with :
40+ fetch-depth : 1
41+
3742 - name : Validate Test Type
3843 run : |
3944 if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]] && [[ "$BUILD_TYPE" != "branch" ]]; then
4045 echo "Invalid build type! Must be one of 'nightly', 'pull-request', or 'branch'."
4146 exit 1
4247 fi
48+
4349 - name : Compute Python Test Matrix
4450 id : compute-matrix
4551 run : |
46- # Set a default GPU based upon architecture.
47- gpu="l4"
48- if [[ "${ARCH}" == "arm64" ]]; then
49- gpu="a100"
50- fi
51- # Add a special entry for the H100 runner on amd64.
52- special_runner=""
53- if [[ "${ARCH}" == "amd64" ]]; then
54- special_runner="- { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: 'H100', DRIVER: 'latest' }"
55- fi
56-
57- # Please keep the matrices sorted in ascending order by the following:
58- #
59- # [PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]
60- #
61- # Note that DRIVER: `earliest` does not work with CUDA 12.9.0 and LOCAL_CTK: 0 does not work with CUDA 12.0.1.
62- #
63- export MATRICES="
64- pull-request:
65- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
66- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
67- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
68- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '13.0.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
69- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
70- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
71- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
72- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '13.0.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
73- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
74- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
75- ${special_runner}
76- nightly:
77- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' }
78- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
79- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
80- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
81- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
82- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' }
83- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
84- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
85- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
86- - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
87- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' }
88- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
89- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
90- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
91- - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
92- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' }
93- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
94- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
95- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
96- - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
97- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' }
98- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
99- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
100- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
101- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
102- ${special_runner}
103- "
104-
10552 # Use the nightly matrix for branch tests
10653 MATRIX_TYPE="${BUILD_TYPE}"
10754 if [[ "${MATRIX_TYPE}" == "branch" ]]; then
10855 MATRIX_TYPE="nightly"
10956 fi
110- export MATRIX_TYPE
111- TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(MATRIX_TYPE)]')
112- export TEST_MATRIX
57+
58+ # Read base matrix from JSON file for the specific architecture
59+ TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" '
60+ .linux[$matrix_type] |
61+ map(select(.ARCH == $arch))
62+ ' ci/test-matrix.json)
63+
64+ # Add special runner for amd64 if applicable
65+ if [[ "${ARCH}" == "amd64" ]]; then
66+ SPECIAL_RUNNERS=$(jq '
67+ .linux.special_runners.amd64
68+ ' ci/test-matrix.json)
69+ TEST_MATRIX=$(jq --argjson special "$SPECIAL_RUNNERS" '. + $special' <<< "$TEST_MATRIX")
70+ fi
11371
11472 MATRIX="$(
115- yq -n -o json 'env(TEST_MATRIX)' | \
116- jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end'
73+ jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' <<< "$TEST_MATRIX"
11774 )"
11875
11976 echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
@@ -298,6 +255,7 @@ jobs:
298255 - name : Run cuda.pathfinder tests with see_what_works
299256 env :
300257 CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS : see_what_works
258+ CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS : see_what_works
301259 run : run-tests pathfinder
302260
303261 - name : Run cuda.bindings tests
@@ -325,11 +283,12 @@ jobs:
325283 run : |
326284 set -euo pipefail
327285 pushd cuda_pathfinder
328- pip install --only-binary=:all: -v ".[nvidia_wheels_cu ${TEST_CUDA_MAJOR},nvidia_wheels_host ]"
286+ pip install --only-binary=:all: -v ".[test_nvidia_wheels_cu ${TEST_CUDA_MAJOR},test_nvidia_wheels_host ]"
329287 pip list
330288 popd
331289
332290 - name : Run cuda.pathfinder tests with all_must_work
333291 env :
334292 CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS : all_must_work
293+ CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS : all_must_work
335294 run : run-tests pathfinder
0 commit comments