Skip to content

Commit f7bfdb2

Browse files
committed
use uv in ci
1 parent 4ef0102 commit f7bfdb2

1 file changed

Lines changed: 68 additions & 23 deletions

File tree

.github/workflows/ci.yml

Lines changed: 68 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- release-*
8+
- ci-*
89
pull_request:
910

1011
concurrency:
@@ -26,22 +27,12 @@ jobs:
2627
test:
2728
name: python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }}
2829
runs-on: ${{ matrix.platform.os }}
29-
needs: [lint, check-msrv, examples]
30+
# needs: [lint, check-msrv, examples]
3031
strategy:
3132
fail-fast: ${{ !contains(github.event.pull_request.labels.*.name, 'CI-no-fail-fast') }}
3233
matrix:
33-
python-version:
34-
[
35-
"3.8",
36-
"3.9",
37-
"3.10",
38-
"3.11",
39-
"3.12",
40-
"3.13",
41-
"3.14",
42-
"3.14t",
43-
"pypy-3.11",
44-
]
34+
# python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "pypy-3.11"]
35+
python-version: ["3.14", "3.14t", "3.15", "3.15t", "pypy-3.11"]
4536
platform:
4637
[
4738
{
@@ -67,31 +58,61 @@ jobs:
6758
]
6859
include:
6960
- python-version: 3.8
70-
platform: { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
61+
platform:
62+
{
63+
os: "macos-15-intel",
64+
python-architecture: "x64",
65+
rust-target: "x86_64-apple-darwin",
66+
}
7167
- python-version: 3.9
72-
platform: { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
68+
platform:
69+
{
70+
os: "macos-15-intel",
71+
python-architecture: "x64",
72+
rust-target: "x86_64-apple-darwin",
73+
}
7374
exclude:
7475
- python-version: 3.8
75-
platform: { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
76+
platform:
77+
{
78+
os: "macOS-latest",
79+
python-architecture: "arm64",
80+
rust-target: "aarch64-apple-darwin",
81+
}
7682
- python-version: 3.9
77-
platform: { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
83+
platform:
84+
{
85+
os: "macOS-latest",
86+
python-architecture: "arm64",
87+
rust-target: "aarch64-apple-darwin",
88+
}
7889
# no 32 bit windows PyPy
7990
- python-version: pypy-3.11
80-
platform: { os: "windows-latest", python-architecture: "x86", rust-target: "i686-pc-windows-msvc" }
91+
platform:
92+
{
93+
os: "windows-latest",
94+
python-architecture: "x86",
95+
rust-target: "i686-pc-windows-msvc",
96+
}
8197
steps:
8298
- uses: actions/checkout@v6
8399
- name: Set up Python ${{ matrix.python-version }}
84100
uses: actions/setup-python@v6
85101
with:
86102
python-version: ${{ matrix.python-version }}
87103
architecture: ${{ matrix.platform.python-architecture }}
104+
allow-prereleases: ${{ startsWith(matrix.python-version, '3.15') }}
105+
- name: Set up UV
106+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
107+
with:
108+
enable-cache: false
88109
- name: Install Rust
89110
uses: dtolnay/rust-toolchain@stable
90111
with:
91112
targets: ${{ matrix.platform.rust-target }}
92113
- name: Test
93114
run: |
94-
pip install "numpy" ml_dtypes
115+
uv pip install "numpy" ml_dtypes
95116
cargo test --all-features
96117
# Not on PyPy, because no embedding API
97118
if: ${{ !startsWith(matrix.python-version, 'pypy') }}
@@ -103,6 +124,10 @@ jobs:
103124
CARGO_TERM_VERBOSE: true
104125
CARGO_BUILD_TARGET: ${{ matrix.platform.rust-target }}
105126
RUST_BACKTRACE: 1
127+
UV_SYSTEM_PYTHON: true
128+
UV_PRERELEASE: ${{ startsWith(matrix.python-version, '3.15') && 'allow' || 'disallow' }}
129+
UV_NO_BUILD_PACKAGE: "numpy"
130+
UV_INDEX: ${{ startsWith(matrix.python-version, '3.15') && "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/" | "" }}
106131

107132
test-numpy1:
108133
name: python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }} numpy1
@@ -137,14 +162,34 @@ jobs:
137162
]
138163
include:
139164
- python-version: 3.8
140-
platform: { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
165+
platform:
166+
{
167+
os: "macos-15-intel",
168+
python-architecture: "x64",
169+
rust-target: "x86_64-apple-darwin",
170+
}
141171
- python-version: 3.9
142-
platform: { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
172+
platform:
173+
{
174+
os: "macos-15-intel",
175+
python-architecture: "x64",
176+
rust-target: "x86_64-apple-darwin",
177+
}
143178
exclude:
144179
- python-version: 3.8
145-
platform: { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
180+
platform:
181+
{
182+
os: "macOS-latest",
183+
python-architecture: "arm64",
184+
rust-target: "aarch64-apple-darwin",
185+
}
146186
- python-version: 3.9
147-
platform: { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
187+
platform:
188+
{
189+
os: "macOS-latest",
190+
python-architecture: "arm64",
191+
rust-target: "aarch64-apple-darwin",
192+
}
148193
steps:
149194
- uses: actions/checkout@v6
150195
- name: Set up Python ${{ matrix.python-version }}

0 commit comments

Comments
 (0)