diff --git a/.github/actions/compute-matrix/action.yaml b/.github/actions/compute-matrix/action.yaml deleted file mode 100644 index 5cec88453..000000000 --- a/.github/actions/compute-matrix/action.yaml +++ /dev/null @@ -1,43 +0,0 @@ -name: Compute matrix - -outputs: - BUILD_MATRIX: - value: ${{ steps.compute-matrix.outputs.BUILD_MATRIX }} - TEST_MATRIX: - value: ${{ steps.compute-matrix.outputs.TEST_MATRIX }} - -runs: - using: composite - steps: - - name: Compute matrix - id: compute-matrix - shell: bash - run: | - set -eo pipefail - - export BUILD_MATRIX=" - - { CUDA_VER: '12.8.0', ARCH: 'amd64', PY_VER: '3.13', LINUX_VER: 'rockylinux8' } - " - - export TEST_MATRIX=" - - { CUDA_VER: '11.8.0', ARCH: 'amd64', PY_VER: '3.9', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'latest' } - - { CUDA_VER: '11.8.0', ARCH: 'amd64', PY_VER: '3.10', LINUX_VER: 'ubuntu20.04', GPU: 'l4', DRIVER: 'latest' } - - { CUDA_VER: '12.0.1', ARCH: 'amd64', PY_VER: '3.11', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest' } - - { CUDA_VER: '12.2.2', ARCH: 'amd64', PY_VER: '3.12', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest' } - - { CUDA_VER: '12.8.0', ARCH: 'amd64', PY_VER: '3.13', LINUX_VER: 'ubuntu24.04', GPU: 'l4', DRIVER: 'latest' } - - { CUDA_VER: '11.8.0', ARCH: 'arm64', PY_VER: '3.9', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest' } - - { CUDA_VER: '11.8.0', ARCH: 'arm64', PY_VER: '3.10', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } - - { CUDA_VER: '12.0.1', ARCH: 'arm64', PY_VER: '3.11', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { CUDA_VER: '12.2.2', ARCH: 'arm64', PY_VER: '3.12', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } - - { CUDA_VER: '12.8.0', ARCH: 'arm64', PY_VER: '3.13', LINUX_VER: 'ubuntu24.04', GPU: 'a100', DRIVER: 'latest' } - " - - echo "BUILD_MATRIX=$( - yq -n -o json 'env(BUILD_MATRIX)' | \ - jq -c '.' \ - )" | tee --append "${GITHUB_OUTPUT}" - - echo "TEST_MATRIX=$( - yq -n -o json 'env(TEST_MATRIX)' | \ - jq -c '.' \ - )" | tee --append "${GITHUB_OUTPUT}" diff --git a/.github/workflows/conda-python-build.yaml b/.github/workflows/conda-python-build.yaml index a96a14907..bec7bae68 100644 --- a/.github/workflows/conda-python-build.yaml +++ b/.github/workflows/conda-python-build.yaml @@ -18,6 +18,9 @@ on: script: type: string default: "ci/build_python.sh" + matrix: + type: string + required: true matrix_filter: type: string default: "." @@ -52,38 +55,11 @@ jobs: steps: - name: Compute Build Matrix id: compute-matrix + env: + MATRIX: ${{ inputs.matrix }} run: | set -eo pipefail - # please keep the matrices sorted in ascending order by the following: - # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER] - # - export MATRIX=" - # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - " - MATRIX="$( yq -n -o json 'env(MATRIX)' | \ jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' @@ -91,6 +67,7 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" build: + name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }} needs: compute-matrix strategy: fail-fast: false diff --git a/.github/workflows/conda-python-tests.yaml b/.github/workflows/conda-python-tests.yaml index 3d340712e..3623fd40d 100644 --- a/.github/workflows/conda-python-tests.yaml +++ b/.github/workflows/conda-python-tests.yaml @@ -18,6 +18,9 @@ on: run_codecov: type: boolean default: true + matrix: + type: string + required: true matrix_filter: type: string default: "." @@ -53,52 +56,13 @@ jobs: outputs: MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} steps: - - 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 + env: + TEST_MATRIX: ${{ inputs.matrix }} run: | set -eo pipefail - # please keep the matrices sorted in ascending order by the following: - # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER, DEPENDENCIES] - # - export MATRICES=" - pull-request: - # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'h100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - # arm64 - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - nightly: - # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'earliest', DEPENDENCIES: 'oldest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', GPU: 'h100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'h100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - " - - # 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 - 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' @@ -106,6 +70,7 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" tests: + name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.GPU }} needs: compute-matrix strategy: fail-fast: false @@ -114,7 +79,6 @@ jobs: env: RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts RAPIDS_COVERAGE_DIR: ${{ github.workspace }}/coverage-results - RAPIDS_DEPENDENCIES: ${{ matrix.DEPENDENCIES }} RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results container: image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 99482f1d2..64ae13ff9 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -39,9 +39,19 @@ jobs: TEST_MATRIX: ${{ steps.compute-matrix.outputs.TEST_MATRIX }} steps: - uses: actions/checkout@v4 - - name: Compute Build Matrix + - name: Compute Matrices id: compute-matrix - uses: ./.github/actions/compute-matrix + run: | + BUILD_MATRIX="$(yq '.build-matrix' ci/matrix.yml)" + TEST_MATRIX="$(yq '.test-matrix' ci/matrix.yml)" + { + echo 'BUILD_MATRIX<> "${GITHUB_OUTPUT}" build-conda: needs: - compute-matrix @@ -49,7 +59,7 @@ jobs: with: build_type: pull-request script: "ci/build_conda.sh" - matrix_filter: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }} + matrix: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }} test-conda: needs: - build-conda @@ -59,7 +69,7 @@ jobs: build_type: pull-request script: "ci/test_conda.sh" run_codecov: false - matrix_filter: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} + matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} test-conda-pynvjitlink: needs: - build-conda @@ -70,6 +80,7 @@ jobs: script: "ci/test_conda_pynvjitlink.sh" run_codecov: false # This selects "ARCH=amd64 and CUDA >=12, with the latest supported Python for each CUDA major version". + matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} matrix_filter: map(select(.ARCH == "amd64" and (.CUDA_VER | split(".") | .[0] | tonumber >= 12))) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) build-wheels: needs: @@ -78,30 +89,36 @@ jobs: with: build_type: pull-request script: "ci/build_wheel.sh" - matrix_filter: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }} + matrix: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }} test-wheels: needs: - build-wheels + - compute-matrix uses: ./.github/workflows/wheels-test.yaml with: build_type: pull-request script: "ci/test_wheel.sh false" + matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} test-wheels-pynvjitlink: needs: - build-wheels + - compute-matrix uses: ./.github/workflows/wheels-test.yaml with: build_type: pull-request script: "ci/test_wheel_pynvjitlink.sh" # This selects "ARCH=amd64 and CUDA >=12, with the latest supported Python for each CUDA major version". + matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} matrix_filter: map(select(.ARCH == "amd64" and (.CUDA_VER | split(".") | .[0] | tonumber >= 12))) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) test-wheels-deps-wheels: needs: - build-wheels + - compute-matrix uses: ./.github/workflows/wheels-test.yaml with: build_type: pull-request script: "ci/test_wheel_deps_wheels.sh" + matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }} matrix_filter: map(select(.ARCH == "amd64" and (.CUDA_VER | split(".") | .[0] | tonumber >= 12))) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) build-docs: needs: diff --git a/.github/workflows/wheels-build.yaml b/.github/workflows/wheels-build.yaml index 08c41f634..2c86cc1b4 100644 --- a/.github/workflows/wheels-build.yaml +++ b/.github/workflows/wheels-build.yaml @@ -26,6 +26,9 @@ on: default: "cpu4" # general settings + matrix: + type: string + required: true matrix_filter: type: string default: "." @@ -73,38 +76,11 @@ jobs: steps: - name: Compute Build Matrix id: compute-matrix + env: + MATRIX: ${{ inputs.matrix }} run: | set -eo pipefail - # please keep the matrices sorted in ascending order by the following: - # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER] - # - export MATRIX=" - # amd64 - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - # arm64 - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } - " - MATRIX="$( yq -n -o json 'env(MATRIX)' | \ jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' @@ -112,7 +88,7 @@ jobs: echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}" build: - name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }} + name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }} needs: [compute-matrix] strategy: matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }} diff --git a/.github/workflows/wheels-test.yaml b/.github/workflows/wheels-test.yaml index b4a2a3a25..c75d65b86 100644 --- a/.github/workflows/wheels-test.yaml +++ b/.github/workflows/wheels-test.yaml @@ -18,6 +18,9 @@ on: script: type: string default: "ci/test_wheel.sh" + matrix: + type: string + required: true matrix_filter: type: string default: "." @@ -70,30 +73,11 @@ jobs: fi - name: Compute test matrix id: compute-matrix + env: + TEST_MATRIX: ${{ inputs.matrix }} run: | set -eo pipefail - # please keep the matrices sorted in ascending order by the following: - # - # [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER, DEPENDENCIES] - # - export MATRICES=" - pull-request: - - { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'oldest' } - - { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'l4', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'oldest' } - - { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.12', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - - { ARCH: 'arm64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu24.04', GPU: 'a100', DRIVER: 'latest', DEPENDENCIES: 'latest' } - " - - TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]') - export TEST_MATRIX - 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' diff --git a/ci/matrix.yml b/ci/matrix.yml new file mode 100644 index 000000000..bd1d05801 --- /dev/null +++ b/ci/matrix.yml @@ -0,0 +1,13 @@ +build-matrix: + - { ARCH: 'amd64', PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'rockylinux8' } +test-matrix: + - { CUDA_VER: '11.8.0', ARCH: 'amd64', PY_VER: '3.9', LINUX_VER: 'rockylinux8', GPU: 'l4', DRIVER: 'earliest' } + - { CUDA_VER: '11.8.0', ARCH: 'amd64', PY_VER: '3.10', LINUX_VER: 'ubuntu20.04', GPU: 'l4', DRIVER: 'latest' } + - { CUDA_VER: '12.0.1', ARCH: 'amd64', PY_VER: '3.11', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest' } + - { CUDA_VER: '12.2.2', ARCH: 'amd64', PY_VER: '3.12', LINUX_VER: 'ubuntu22.04', GPU: 'l4', DRIVER: 'latest' } + - { CUDA_VER: '12.8.0', ARCH: 'amd64', PY_VER: '3.13', LINUX_VER: 'ubuntu24.04', GPU: 'l4', DRIVER: 'latest' } + - { CUDA_VER: '11.8.0', ARCH: 'arm64', PY_VER: '3.9', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'earliest' } + - { CUDA_VER: '11.8.0', ARCH: 'arm64', PY_VER: '3.10', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' } + - { CUDA_VER: '12.0.1', ARCH: 'arm64', PY_VER: '3.11', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } + - { CUDA_VER: '12.2.2', ARCH: 'arm64', PY_VER: '3.12', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' } + - { CUDA_VER: '12.8.0', ARCH: 'arm64', PY_VER: '3.13', LINUX_VER: 'ubuntu24.04', GPU: 'a100', DRIVER: 'latest' }