From 2392641d70f8704be19bfca888b2b5afdf349c06 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 Aug 2025 01:52:53 +0000 Subject: [PATCH 01/12] Initial plan From 70833d1e32bc00c116a5246e9e68ba2810d8f5ee Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 Aug 2025 01:59:37 +0000 Subject: [PATCH 02/12] Consolidate test matrices from workflows into ci/test-matrix.json Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-linux.yml | 80 +++++++----------------- .github/workflows/test-wheel-windows.yml | 34 ++++------ ci/test-matrix.json | 65 +++++++++++++++++++ 3 files changed, 99 insertions(+), 80 deletions(-) create mode 100644 ci/test-matrix.json diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index b775670a9b..9e99a22a79 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -34,12 +34,18 @@ jobs: outputs: MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} steps: + - name: Checkout ${{ github.event.repository.name }} + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + fetch-depth: 0 + - name: Validate Test Type run: | if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]] && [[ "$BUILD_TYPE" != "branch" ]]; then echo "Invalid build type! Must be one of 'nightly', 'pull-request', or 'branch'." exit 1 fi + - name: Compute Python Test Matrix id: compute-matrix run: | @@ -48,72 +54,30 @@ jobs: if [[ "${ARCH}" == "arm64" ]]; then gpu="a100" fi - # Add a special entry for the H100 runner on amd64. - special_runner="" - if [[ "${ARCH}" == "amd64" ]]; then - special_runner="- { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: 'H100', DRIVER: 'latest' }" - fi - - # Please keep the matrices sorted in ascending order by the following: - # - # [PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER] - # - # Note that DRIVER: `earliest` does not work with CUDA 12.9.0 and LOCAL_CTK: 0 does not work with CUDA 12.0.1. - # - export MATRICES=" - pull-request: - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '13.0.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '13.0.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - ${special_runner} - nightly: - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' } - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.10', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.11', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '11.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'earliest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.9.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' } - ${special_runner} - " # Use the nightly matrix for branch tests MATRIX_TYPE="${BUILD_TYPE}" if [[ "${MATRIX_TYPE}" == "branch" ]]; then MATRIX_TYPE="nightly" fi - export MATRIX_TYPE - TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(MATRIX_TYPE)]') - export TEST_MATRIX + + # Read base matrix from JSON file and substitute GPU placeholder + TEST_MATRIX=$(jq --arg gpu "$gpu" --arg arch "$ARCH" ' + .linux[env.MATRIX_TYPE] | + map(. + {ARCH: $arch} | if .GPU == "{gpu}" then . + {GPU: $gpu} else . end) + ' ci/test-matrix.json) + + # Add special runner for amd64 if applicable + if [[ "${ARCH}" == "amd64" ]]; then + SPECIAL_RUNNERS=$(jq --arg arch "$ARCH" ' + .linux.special_runners.amd64 | + map(. + {ARCH: $arch}) + ' ci/test-matrix.json) + TEST_MATRIX=$(jq --argjson special "$SPECIAL_RUNNERS" '. + $special' <<< "$TEST_MATRIX") + fi MATRIX="$( - yq -n -o json 'env(TEST_MATRIX)' | \ - jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' + jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' <<< "$TEST_MATRIX" )" echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index 18ddbcb45a..cdc9dfa6b8 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -32,6 +32,11 @@ jobs: outputs: MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} steps: + - name: Checkout ${{ github.event.repository.name }} + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + fetch-depth: 0 + - name: Validate Test Type run: | if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]] && [[ "$BUILD_TYPE" != "branch" ]]; then @@ -41,35 +46,20 @@ jobs: - name: Compute Python Test Matrix id: compute-matrix run: | - # Please keep the matrices sorted in ascending order by the following: - # - # [PY_VER, CUDA_VER, LOCAL_CTK] - # - export MATRICES=" - pull-request: - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '0' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '0' } - - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '13.0.0', LOCAL_CTK: '1' } - nightly: - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '0' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '11.8.0', LOCAL_CTK: '1' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '0' } - - { ARCH: ${ARCH}, PY_VER: '3.12', CUDA_VER: '12.9.0', LOCAL_CTK: '1' } - " - # Use the nightly matrix for branch tests MATRIX_TYPE="${BUILD_TYPE}" if [[ "${MATRIX_TYPE}" == "branch" ]]; then MATRIX_TYPE="nightly" fi - export MATRIX_TYPE - TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(MATRIX_TYPE)]') - export TEST_MATRIX + + # Read base matrix from JSON file and add ARCH field + TEST_MATRIX=$(jq --arg arch "$ARCH" ' + .windows[env.MATRIX_TYPE] | + map(. + {ARCH: $arch}) + ' ci/test-matrix.json) MATRIX="$( - yq -n -o json 'env(TEST_MATRIX)' | \ - jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' + jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' <<< "$TEST_MATRIX" )" echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" diff --git a/ci/test-matrix.json b/ci/test-matrix.json new file mode 100644 index 0000000000..2491e18f37 --- /dev/null +++ b/ci/test-matrix.json @@ -0,0 +1,65 @@ +{ + "_description": "Test matrix configurations for CUDA Python CI workflows. This file consolidates the test matrices that were previously hardcoded in the workflow files. The {gpu} placeholder in linux configurations is dynamically replaced based on architecture: l4 for amd64, a100 for arm64.", + "_sorted_by": "Please keep matrices sorted in ascending order by [PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]", + "_notes": "DRIVER: 'earliest' does not work with CUDA 12.9.0 and LOCAL_CTK: 0 does not work with CUDA 12.0.1", + "linux": { + "pull-request": [ + { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.9", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" } + ], + "nightly": [ + { "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, + { "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.9", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, + { "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, + { "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, + { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, + { "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, + { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" } + ], + "special_runners": { + "amd64": [ + { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "H100", "DRIVER": "latest" } + ] + } + }, + "windows": { + "pull-request": [ + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1" }, + { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0" }, + { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1" } + ], + "nightly": [ + { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0" }, + { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0" }, + { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1" } + ] + } +} \ No newline at end of file From 27232d6966d25294cca6cf4827b1276e78210800 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 Aug 2025 02:12:11 +0000 Subject: [PATCH 03/12] Hard-code all GPU and ARCH values in test-matrix.json with 6 fields per entry Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-linux.yml | 19 ++-- .github/workflows/test-wheel-windows.yml | 8 +- ci/test-matrix.json | 127 +++++++++++++++-------- 3 files changed, 91 insertions(+), 63 deletions(-) diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index 9e99a22a79..60840749c5 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -49,29 +49,22 @@ jobs: - name: Compute Python Test Matrix id: compute-matrix run: | - # Set a default GPU based upon architecture. - gpu="l4" - if [[ "${ARCH}" == "arm64" ]]; then - gpu="a100" - fi - # Use the nightly matrix for branch tests MATRIX_TYPE="${BUILD_TYPE}" if [[ "${MATRIX_TYPE}" == "branch" ]]; then MATRIX_TYPE="nightly" fi - # Read base matrix from JSON file and substitute GPU placeholder - TEST_MATRIX=$(jq --arg gpu "$gpu" --arg arch "$ARCH" ' - .linux[env.MATRIX_TYPE] | - map(. + {ARCH: $arch} | if .GPU == "{gpu}" then . + {GPU: $gpu} else . end) + # Read base matrix from JSON file for the specific architecture + TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" ' + .linux[$matrix_type] | + map(select(.ARCH == $arch)) ' ci/test-matrix.json) # Add special runner for amd64 if applicable if [[ "${ARCH}" == "amd64" ]]; then - SPECIAL_RUNNERS=$(jq --arg arch "$ARCH" ' - .linux.special_runners.amd64 | - map(. + {ARCH: $arch}) + SPECIAL_RUNNERS=$(jq ' + .linux.special_runners.amd64 ' ci/test-matrix.json) TEST_MATRIX=$(jq --argjson special "$SPECIAL_RUNNERS" '. + $special' <<< "$TEST_MATRIX") fi diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index cdc9dfa6b8..632c8752b1 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -52,10 +52,10 @@ jobs: MATRIX_TYPE="nightly" fi - # Read base matrix from JSON file and add ARCH field - TEST_MATRIX=$(jq --arg arch "$ARCH" ' - .windows[env.MATRIX_TYPE] | - map(. + {ARCH: $arch}) + # Read base matrix from JSON file for the specific architecture + TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" ' + .windows[$matrix_type] | + map(select(.ARCH == $arch)) ' ci/test-matrix.json) MATRIX="$( diff --git a/ci/test-matrix.json b/ci/test-matrix.json index 2491e18f37..568767668b 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -1,65 +1,100 @@ { - "_description": "Test matrix configurations for CUDA Python CI workflows. This file consolidates the test matrices that were previously hardcoded in the workflow files. The {gpu} placeholder in linux configurations is dynamically replaced based on architecture: l4 for amd64, a100 for arm64.", - "_sorted_by": "Please keep matrices sorted in ascending order by [PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]", + "_description": "Test matrix configurations for CUDA Python CI workflows. This file consolidates the test matrices that were previously hardcoded in the workflow files. All GPU and ARCH values are hard-coded for each architecture: l4 GPU for amd64, a100 GPU for arm64.", + "_sorted_by": "Please keep matrices sorted in ascending order by [ARCH, PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]", "_notes": "DRIVER: 'earliest' does not work with CUDA 12.9.0 and LOCAL_CTK: 0 does not work with CUDA 12.0.1", "linux": { "pull-request": [ - { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.9", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } ], "nightly": [ - { "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, - { "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.9", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, - { "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, - { "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, - { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "earliest" }, - { "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "{gpu}", "DRIVER": "latest" }, - { "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "{gpu}", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" }, + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.9", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } ], "special_runners": { "amd64": [ - { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "H100", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "H100", "DRIVER": "latest" } ] } }, "windows": { "pull-request": [ - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1" }, - { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0" }, - { "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" } ], "nightly": [ - { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0" }, - { "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0" }, - { "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" } ] } } \ No newline at end of file From 111875a0a9fb702d4165cbd3f4299c383b4ac197 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 24 Aug 2025 03:54:45 +0000 Subject: [PATCH 04/12] Update Windows test matrix with a100 GPU and latest-1 driver, configure self-hosted runners Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-windows.yml | 4 ++-- ci/test-matrix.json | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index 632c8752b1..ebd1a72ef0 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -65,14 +65,14 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" test: - name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }} + name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }} # The build stage could fail but we want the CI to keep moving. needs: compute-matrix strategy: fail-fast: false matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} if: ${{ github.repository_owner == 'nvidia' && !cancelled() }} - runs-on: 'cuda-python-windows-gpu-github' + runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" steps: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 diff --git a/ci/test-matrix.json b/ci/test-matrix.json index 568767668b..3c302b93d7 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -85,16 +85,16 @@ }, "windows": { "pull-request": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" } ], "nightly": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "gpu", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "gpu", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" } ] } } \ No newline at end of file From eed0b71957abb6d22a4fbebb96b1cb1141e99ec3 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Sat, 23 Aug 2025 23:58:35 -0400 Subject: [PATCH 05/12] fix --- .github/workflows/test-wheel-windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index ebd1a72ef0..5b52279fe5 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -72,7 +72,7 @@ jobs: fail-fast: false matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} if: ${{ github.repository_owner == 'nvidia' && !cancelled() }} - runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" + runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}" steps: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 69875a3fbab8efc0c774d279819a91b964222258 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 24 Aug 2025 04:05:43 +0000 Subject: [PATCH 06/12] Revert eed0b71 and change Windows DRIVER from latest-1 to latest Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-windows.yml | 2 +- ci/test-matrix.json | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index 5b52279fe5..ebd1a72ef0 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -72,7 +72,7 @@ jobs: fail-fast: false matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} if: ${{ github.repository_owner == 'nvidia' && !cancelled() }} - runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}" + runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" steps: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 diff --git a/ci/test-matrix.json b/ci/test-matrix.json index 3c302b93d7..5eb3fbe9fd 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -85,16 +85,16 @@ }, "windows": { "pull-request": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } ], "nightly": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest-1" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest-1" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } ] } } \ No newline at end of file From ae93e2bf70b0b26b893a82dcdd26407cf6300397 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 24 Aug 2025 04:50:18 +0000 Subject: [PATCH 07/12] Add proxy cache setup to Windows workflow for self-hosted runners Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-windows.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index ebd1a72ef0..f0a3a10fe9 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -79,7 +79,9 @@ jobs: with: fetch-depth: 0 - # TODO: use setup-proxy-cache once we have self-hosted Windows runners + - name: Setup proxy cache + uses: nv-gha-runners/setup-proxy-cache@main + continue-on-error: true - name: Update driver run: | From 64141b5b0dd202eace23ca2e6a3622da12fa5034 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 Aug 2025 14:45:03 +0000 Subject: [PATCH 08/12] Remove Git for Windows and gh CLI installation steps, add T4 GPU support to Windows matrix Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-windows.yml | 29 ------------------------ ci/test-matrix.json | 4 ++-- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index f0a3a10fe9..ca23716cdc 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -90,20 +90,6 @@ jobs: - name: Ensure GPU is working run: nvidia-smi - - name: Install Git for Windows - # the GPU runner image does not have Git Bash pre-installed... - env: - # doesn't seem there's an easy way to avoid hard-coding it? - GFW_EXE_URL: https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe - run: | - Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe" - # Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html - Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2' - ls -l PortableGit - echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH - $env:Path += ";$((Get-Location).Path)\\PortableGit\\bin" - bash --version - - name: Set environment variables env: BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }} @@ -135,21 +121,6 @@ jobs: name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }} path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }} - - name: Install gh cli - # the GPU runner image does not have gh pre-installed... - env: - # doesn't seem there's an easy way to avoid hard-coding it? - GH_MSI_URL: https://github.com/cli/cli/releases/download/v2.67.0/gh_2.67.0_windows_amd64.msi - run: | - Invoke-WebRequest -Uri "$env:GH_MSI_URL" -OutFile "gh_installer.msi" - Start-Process msiexec.exe -Wait -Verbose -ArgumentList '/i "gh_installer.msi" /qn' - $GH_POSSIBLE_PATHS = "C:\\Program Files\\GitHub CLI", "C:\\Program Files (x86)\\GitHub CLI" - foreach ($p in $GH_POSSIBLE_PATHS) { - echo "$p" >> $env:GITHUB_PATH - $env:Path += ";$p" - } - gh --version - - name: Install zstd # the GPU runner image does not have zstd pre-installed... and it's needed by actions/cache if: ${{ matrix.LOCAL_CTK == '1' }} diff --git a/ci/test-matrix.json b/ci/test-matrix.json index 5eb3fbe9fd..187c7e6868 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -86,8 +86,8 @@ "windows": { "pull-request": [ { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "t4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" }, { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } ], "nightly": [ From c5df9d05299d4267c0a977d16db9361574e30470 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 25 Aug 2025 15:40:33 +0000 Subject: [PATCH 09/12] Set fetch-depth: 1 for checkout steps and favor L4/T4 over A100 GPUs for Windows testing Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-linux.yml | 2 +- .github/workflows/test-wheel-windows.yml | 2 +- ci/test-matrix.json | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index 60840749c5..87c7279973 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -37,7 +37,7 @@ jobs: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: - fetch-depth: 0 + fetch-depth: 1 - name: Validate Test Type run: | diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index ca23716cdc..746302da99 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -35,7 +35,7 @@ jobs: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: - fetch-depth: 0 + fetch-depth: 1 - name: Validate Test Type run: | diff --git a/ci/test-matrix.json b/ci/test-matrix.json index 187c7e6868..e964601ac3 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -85,16 +85,16 @@ }, "windows": { "pull-request": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "t4", "DRIVER": "latest" }, { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" } ], "nightly": [ - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" }, - { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" } + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "t4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" }, + { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" } ] } } \ No newline at end of file From 8afb8502480ae58b1b76dd3df64d85ab186c79bc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 02:42:11 +0000 Subject: [PATCH 10/12] Revert Windows workflow to GitHub-hosted runners with TODO comments for future self-hosted migration Co-authored-by: leofang <5534781+leofang@users.noreply.github.com> --- .github/workflows/test-wheel-windows.yml | 42 +++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index 746302da99..0c11dc8df8 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -72,16 +72,19 @@ jobs: fail-fast: false matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} if: ${{ github.repository_owner == 'nvidia' && !cancelled() }} - runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" + # TODO: switch to self-hosted runners once they are ready + # runs-on: "windows-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1" + runs-on: 'cuda-python-windows-gpu-github' steps: - name: Checkout ${{ github.event.repository.name }} uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 - - name: Setup proxy cache - uses: nv-gha-runners/setup-proxy-cache@main - continue-on-error: true + # TODO: use setup-proxy-cache once we have self-hosted Windows runners + # - name: Setup proxy cache + # uses: nv-gha-runners/setup-proxy-cache@main + # continue-on-error: true - name: Update driver run: | @@ -90,6 +93,21 @@ jobs: - name: Ensure GPU is working run: nvidia-smi + # TODO: remove this block once self-hosted runners are ready + - name: Install Git for Windows + # the GPU runner image does not have Git Bash pre-installed... + env: + # doesn't seem there's an easy way to avoid hard-coding it? + GFW_EXE_URL: https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe + run: | + Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe" + # Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html + Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2' + ls -l PortableGit + echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH + $env:Path += ";$((Get-Location).Path)\\PortableGit\\bin" + bash --version + - name: Set environment variables env: BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }} @@ -121,6 +139,22 @@ jobs: name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }} path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }} + # TODO: remove this block once self-hosted runners are ready + - name: Install gh cli + # the GPU runner image does not have gh pre-installed... + env: + # doesn't seem there's an easy way to avoid hard-coding it? + GH_MSI_URL: https://github.com/cli/cli/releases/download/v2.67.0/gh_2.67.0_windows_amd64.msi + run: | + Invoke-WebRequest -Uri "$env:GH_MSI_URL" -OutFile "gh_installer.msi" + Start-Process msiexec.exe -Wait -Verbose -ArgumentList '/i "gh_installer.msi" /qn' + $GH_POSSIBLE_PATHS = "C:\\Program Files\\GitHub CLI", "C:\\Program Files (x86)\\GitHub CLI" + foreach ($p in $GH_POSSIBLE_PATHS) { + echo "$p" >> $env:GITHUB_PATH + $env:Path += ";$p" + } + gh --version + - name: Install zstd # the GPU runner image does not have zstd pre-installed... and it's needed by actions/cache if: ${{ matrix.LOCAL_CTK == '1' }} From a9b97fc38fabdb8edabf7cf3e8511e921cd88e4b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 5 Sep 2025 02:50:49 +0000 Subject: [PATCH 11/12] [pre-commit.ci] auto code formatting --- .github/workflows/test-wheel-linux.yml | 2 +- .github/workflows/test-wheel-windows.yml | 2 +- ci/test-matrix.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-wheel-linux.yml b/.github/workflows/test-wheel-linux.yml index 87c7279973..389a02dcb4 100644 --- a/.github/workflows/test-wheel-linux.yml +++ b/.github/workflows/test-wheel-linux.yml @@ -57,7 +57,7 @@ jobs: # Read base matrix from JSON file for the specific architecture TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" ' - .linux[$matrix_type] | + .linux[$matrix_type] | map(select(.ARCH == $arch)) ' ci/test-matrix.json) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index 0c11dc8df8..0c24530691 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -54,7 +54,7 @@ jobs: # Read base matrix from JSON file for the specific architecture TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" ' - .windows[$matrix_type] | + .windows[$matrix_type] | map(select(.ARCH == $arch)) ' ci/test-matrix.json) diff --git a/ci/test-matrix.json b/ci/test-matrix.json index e964601ac3..96bde257d5 100644 --- a/ci/test-matrix.json +++ b/ci/test-matrix.json @@ -97,4 +97,4 @@ { "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" } ] } -} \ No newline at end of file +} From 1ad9d1849f9b397d8a1752d5196fde112abaf9ea Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Fri, 5 Sep 2025 14:00:54 -0400 Subject: [PATCH 12/12] Revert Win runner name change for now --- .github/workflows/test-wheel-windows.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-wheel-windows.yml b/.github/workflows/test-wheel-windows.yml index b91bcffdf8..d0b35e95cc 100644 --- a/.github/workflows/test-wheel-windows.yml +++ b/.github/workflows/test-wheel-windows.yml @@ -65,7 +65,9 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" test: - name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }} + # TODO: switch to this once the self-hosted runners are ready + # name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }} + name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }} # The build stage could fail but we want the CI to keep moving. needs: compute-matrix strategy: