|
26 | 26 | test: |
27 | 27 | name: python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }} |
28 | 28 | runs-on: ${{ matrix.platform.os }} |
| 29 | + continue-on-error: ${{ startsWith(matrix.python-version, '3.15') }} # remove once 3.15 releases |
29 | 30 | needs: [lint, check-msrv, examples] |
30 | 31 | strategy: |
31 | 32 | fail-fast: ${{ !contains(github.event.pull_request.labels.*.name, 'CI-no-fail-fast') }} |
|
40 | 41 | "3.13", |
41 | 42 | "3.14", |
42 | 43 | "3.14t", |
| 44 | + "3.15", |
| 45 | + "3.15t", |
43 | 46 | "pypy-3.11", |
44 | 47 | ] |
45 | 48 | platform: |
@@ -78,31 +81,46 @@ jobs: |
78 | 81 | # no 32 bit windows PyPy |
79 | 82 | - python-version: pypy-3.11 |
80 | 83 | platform: { os: "windows-latest", python-architecture: "x86", rust-target: "i686-pc-windows-msvc" } |
| 84 | + # free-threaded on 32bit only supported on 3.15+ |
| 85 | + - python-version: 3.14t |
| 86 | + platform: { os: "windows-latest", python-architecture: "x86", rust-target: "i686-pc-windows-msvc" } |
| 87 | + |
81 | 88 | steps: |
82 | 89 | - uses: actions/checkout@v6 |
83 | 90 | - name: Set up Python ${{ matrix.python-version }} |
84 | 91 | uses: actions/setup-python@v6 |
85 | 92 | with: |
86 | 93 | python-version: ${{ matrix.python-version }} |
87 | 94 | architecture: ${{ matrix.platform.python-architecture }} |
| 95 | + allow-prereleases: ${{ startsWith(matrix.python-version, '3.15') }} # remove once 3.15 releases |
| 96 | + - name: Set up UV |
| 97 | + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 |
88 | 98 | - name: Install Rust |
89 | 99 | uses: dtolnay/rust-toolchain@stable |
90 | 100 | with: |
91 | 101 | targets: ${{ matrix.platform.rust-target }} |
92 | 102 | - name: Test |
93 | | - run: | |
94 | | - pip install "numpy" ml_dtypes |
95 | | - cargo test --all-features |
96 | 103 | # Not on PyPy, because no embedding API |
97 | 104 | if: ${{ !startsWith(matrix.python-version, 'pypy') }} |
| 105 | + run: | |
| 106 | + uv pip install "numpy" ml_dtypes |
| 107 | + cargo test --all-features |
| 108 | + - name: Test abi3t |
| 109 | + if: ${{ matrix.python-version == '3.15t' }} |
| 110 | + run: | |
| 111 | + cargo test --all-features -F pyo3/abi3t |
98 | 112 | - name: Test example |
99 | 113 | run: | |
100 | | - pip install nox |
101 | | - nox -f examples/simple/noxfile.py |
| 114 | + uvx nox -f examples/simple/noxfile.py |
102 | 115 | env: |
103 | 116 | CARGO_TERM_VERBOSE: true |
104 | 117 | CARGO_BUILD_TARGET: ${{ matrix.platform.rust-target }} |
105 | 118 | RUST_BACKTRACE: 1 |
| 119 | + UV_SYSTEM_PYTHON: true |
| 120 | + UV_PRERELEASE: ${{ startsWith(matrix.python-version, '3.15') && 'allow' || 'disallow' }} # remove once numpy 2.6 releases |
| 121 | + UV_NO_BUILD_PACKAGE: "numpy" |
| 122 | + UV_INDEX: ${{ startsWith(matrix.python-version, '3.15') && 'https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/' || '' }} # remove once numpy 2.6 releases |
| 123 | + NOX_DEFAULT_VENV_BACKEND: "uv" |
106 | 124 |
|
107 | 125 | test-numpy1: |
108 | 126 | name: python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }} numpy1 |
|
0 commit comments