-
Notifications
You must be signed in to change notification settings - Fork 76
148 lines (144 loc) · 5.46 KB
/
Copy pathci.yaml
File metadata and controls
148 lines (144 loc) · 5.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause
name: ci
on:
push:
branches:
- "main"
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd
with:
extra_args: --all-files --show-diff-on-failure
compute-matrix:
runs-on: ubuntu-latest
outputs:
BUILD_MATRIX: ${{ steps.compute-matrix.outputs.BUILD_MATRIX }}
SIMULATOR_MATRIX: ${{ steps.compute-matrix.outputs.SIMULATOR_MATRIX }}
TEST_MATRIX: ${{ steps.compute-matrix.outputs.TEST_MATRIX }}
steps:
- uses: actions/checkout@v5
- name: Compute Matrices
id: compute-matrix
run: |
BUILD_MATRIX="$(yq '.build-matrix' ci/matrix.yml)"
SIMULATOR_MATRIX="$(yq '.simulator-matrix' ci/matrix.yml)"
TEST_MATRIX="$(yq '.test-matrix' ci/matrix.yml)"
{
echo 'BUILD_MATRIX<<EOF'
echo "${BUILD_MATRIX}"
echo 'EOF'
echo 'SIMULATOR_MATRIX<<EOF'
echo "${SIMULATOR_MATRIX}"
echo 'EOF'
echo 'TEST_MATRIX<<EOF'
echo "${TEST_MATRIX}"
echo 'EOF'
} >> "${GITHUB_OUTPUT}"
build-conda:
needs:
- compute-matrix
uses: ./.github/workflows/conda-python-build.yaml
with:
build_type: pull-request
script: "ci/build_conda.sh"
matrix: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }}
test-conda:
needs:
- compute-matrix
uses: ./.github/workflows/conda-python-tests.yaml
with:
build_type: pull-request
script: "ci/test_conda.sh"
run_codecov: false
matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }}
test-simulator:
needs:
- compute-matrix
uses: ./.github/workflows/simulator-test.yaml
with:
build_type: pull-request
script: "ci/test_simulator.sh"
matrix: ${{ needs.compute-matrix.outputs.SIMULATOR_MATRIX }}
build-wheels:
needs:
- compute-matrix
uses: ./.github/workflows/wheels-build.yaml
with:
build_type: pull-request
script: "ci/build_wheel.sh"
matrix: ${{ needs.compute-matrix.outputs.BUILD_MATRIX }}
build-wheels-windows:
uses: ./.github/workflows/wheel-windows-build.yaml
test-wheels-windows:
needs:
- build-wheels-windows
uses: ./.github/workflows/wheel-windows-tests.yaml
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-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))]))
test-thirdparty-cudf:
needs:
- build-wheels
- compute-matrix
uses: ./.github/workflows/wheels-test.yaml
with:
build_type: pull-request
script: "ci/test_thirdparty_cudf.sh"
matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }}
# TODO: Enable for CUDA 13 when a supporting version of cuDF is available
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-thirdparty-nvmath:
needs:
- build-wheels
- compute-matrix
uses: ./.github/workflows/wheels-test.yaml
with:
build_type: pull-request
script: "ci/test_thirdparty_nvmath.sh"
matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }}
# TODO: Enable for CUDA 13 when a supporting version of nvmath-python is available
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-thirdparty-awkward:
needs:
- build-wheels
- compute-matrix
uses: ./.github/workflows/wheels-test.yaml
with:
build_type: pull-request
script: "ci/test_thirdparty_awkward.sh"
matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }}
# TODO: Enable for CUDA 13 in future
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:
uses: ./.github/workflows/docs-build.yaml
coverage-report:
needs:
- build-wheels
- compute-matrix
uses: ./.github/workflows/wheels-test.yaml
with:
build_type: pull-request
script: "ci/coverage_report.sh"
matrix: ${{ needs.compute-matrix.outputs.TEST_MATRIX }}
matrix_filter: 'map(select(.ARCH == "amd64" and .CUDA_VER == "12.9.1" and .PY_VER == "3.12")) | .[0:1]'