-
Notifications
You must be signed in to change notification settings - Fork 35
110 lines (105 loc) · 4.21 KB
/
test-wheel-linux.yml
File metadata and controls
110 lines (105 loc) · 4.21 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
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
# TODO(nvmath-python CI): Implement the nvmath-python Linux wheel test matrix.
#
# The previous contents of this file were copied from cuda-python and tested
# three separate wheels (cuda.pathfinder, cuda.bindings, cuda.core) downloaded
# from per-component artifacts. nvmath-python has a single wheel, so the
# multi-component download logic and the `NVIDIA/cuda-python` backport-branch
# fetch (USE_BACKPORT_BINDINGS) do not apply.
#
# What this workflow needs to do (follow-up implementation):
# 1. Download the nvmath-python wheel artifact uploaded by build-wheel.yml.
# 2. Set up the CTK install dictated by `inputs.ctk-variant`:
# cu12 / cu13 -> `pip install nvmath-python[cu12]` (or [cu13]);
# installs cuda-bindings + nvidia-* wheels at runtime.
# sysctk12/13 -> install via system CTK layer ([sysctk12] or [sysctk13]).
# (See pyproject.toml [project.optional-dependencies] for the exact
# extras and which cuda-* deps come with each.)
# 3. Run the per-submodule test buckets gated by the `skip-*-test` inputs.
# Each bucket maps to a subdirectory under `tests/nvmath_tests/`:
# bindings -> tests/nvmath_tests/ (bindings coverage spans the tree)
# fft -> tests/nvmath_tests/fft/
# linalg -> tests/nvmath_tests/linalg/
# sparse -> tests/nvmath_tests/sparse/
# tensor -> tests/nvmath_tests/tensor/
# distributed -> tests/nvmath_tests/distributed/
# device -> tests/nvmath_tests/device/
# 4. Honor the CSV test matrix embedded in ci.yml: for each
# (ctk-variant, module) pair, configure CuPy/PyTorch/NVPL/MKL backends and
# arch range as specified. Windows coverage is explicitly absent from the
# CSV; see test-wheel-windows.yml.
# 5. `nruns` controls how many times pytest is rerun to shake out flakes
# under the `schedule` event.
#
# Until this is implemented, the job below exits successfully with a TODO
# message so the ci.yml dependency graph remains valid.
on:
workflow_call:
inputs:
build-type:
required: true
type: string
host-platform:
required: true
type: string
ctk-variant:
required: true
type: string
nruns:
required: false
default: 1
type: number
skip-bindings-test:
required: false
default: false
type: boolean
skip-fft-test:
required: false
default: false
type: boolean
skip-linalg-test:
required: false
default: false
type: boolean
skip-sparse-test:
required: false
default: false
type: boolean
skip-tensor-test:
required: false
default: false
type: boolean
skip-distributed-test:
required: false
default: false
type: boolean
skip-device-test:
required: false
default: false
type: boolean
defaults:
run:
shell: bash --noprofile --norc -xeuo pipefail {0}
permissions:
contents: read # This is required for actions/checkout
jobs:
test:
name: Test (TODO)
runs-on: ubuntu-latest
steps:
- name: TODO — implement nvmath-python Linux wheel tests
run: |
echo "::warning::test-wheel-linux.yml is a stub. Implement the nvmath-python test matrix."
echo "build-type: ${{ inputs.build-type }}"
echo "host-platform: ${{ inputs.host-platform }}"
echo "ctk-variant: ${{ inputs.ctk-variant }}"
echo "nruns: ${{ inputs.nruns }}"
echo "skip-bindings-test: ${{ inputs.skip-bindings-test }}"
echo "skip-fft-test: ${{ inputs.skip-fft-test }}"
echo "skip-linalg-test: ${{ inputs.skip-linalg-test }}"
echo "skip-sparse-test: ${{ inputs.skip-sparse-test }}"
echo "skip-tensor-test: ${{ inputs.skip-tensor-test }}"
echo "skip-distributed-test: ${{ inputs.skip-distributed-test }}"
echo "skip-device-test: ${{ inputs.skip-device-test }}"