@@ -3,111 +3,147 @@ name: CI
33on :
44 workflow_dispatch :
55
6- permissions :
7- contents : read
8-
96jobs :
107 linux :
118 runs-on : ${{ matrix.platform.runner }}
129 strategy :
1310 matrix :
1411 platform :
15- - runner : ubuntu-22.04
16- target : x86_64
17- - runner : ubuntu-22.04
18- target : x86
19- - runner : ubuntu-22.04
20- target : aarch64
21- - runner : ubuntu-22.04
22- target : armv7
23- - runner : ubuntu-22.04
24- target : s390x
25- - runner : ubuntu-22.04
26- target : ppc64le
12+ - {
13+ runner : ubuntu-latest,
14+ target : x86_64,
15+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
16+ }
17+ - {
18+ runner : ubuntu-latest,
19+ target : x86,
20+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
21+ }
22+ - {
23+ runner : ubuntu-latest,
24+ target : aarch64,
25+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
26+ }
27+ - {
28+ runner : ubuntu-latest,
29+ target : armv7,
30+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
31+ }
32+ - {
33+ runner : ubuntu-latest,
34+ target : s390x,
35+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
36+ }
37+ - {
38+ runner : ubuntu-latest,
39+ target : ppc64le,
40+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
41+ }
2742 steps :
28- - uses : actions/checkout@v4
29- - uses : actions/setup-python@v5
43+ - uses : actions/checkout@v5
44+ with :
45+ persist-credentials : false
46+
47+ - uses : actions/setup-python@v6
3048 with :
3149 python-version : 3.x
32- allow-prereleases : true
33-
34- - name : Build wheels
35- uses : PyO3/maturin-action@v1
50+
51+ - name : " Build wheels"
52+ uses : PyO3/maturin-action@v1.49.4
3653 with :
3754 target : ${{ matrix.platform.target }}
38- args : --release --out dist --find- interpreter
55+ args : --release --out dist --interpreter ${{ matrix.platform.interpreter }}
3956 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
4057 manylinux : auto
4158 rust-toolchain : nightly
4259
43- - name : Upload wheels
44- uses : actions/upload-artifact@v4
60+ - name : " Upload wheels"
61+ uses : actions/upload-artifact@v4.6.2
4562 with :
4663 name : wheels-linux-${{ matrix.platform.target }}
4764 path : dist
48-
65+
4966 musllinux :
5067 runs-on : ${{ matrix.platform.runner }}
5168 strategy :
5269 matrix :
5370 platform :
54- - runner : ubuntu-22.04
55- target : x86_64
56- - runner : ubuntu-22.04
57- target : x86
58- - runner : ubuntu-22.04
59- target : aarch64
60- - runner : ubuntu-22.04
61- target : armv7
71+ - {
72+ runner : ubuntu-latest,
73+ target : x86_64,
74+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
75+ }
76+ - {
77+ runner : ubuntu-latest,
78+ target : x86,
79+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
80+ }
81+ - {
82+ runner : ubuntu-latest,
83+ target : aarch64,
84+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
85+ }
86+ - {
87+ runner : ubuntu-latest,
88+ target : armv7,
89+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
90+ }
91+
6292 steps :
63- - uses : actions/checkout@v4
64- - uses : actions/setup-python@v5
93+ - uses : actions/checkout@v5
94+ with :
95+ persist-credentials : false
96+ - uses : actions/setup-python@v6
6597 with :
6698 python-version : 3.x
67- allow-prereleases : true
68-
69- - name : Build wheels
70- uses : PyO3/maturin-action@v1
99+ - name : " Build wheels"
100+ uses : PyO3/maturin-action@v1.49.4
71101 with :
72102 target : ${{ matrix.platform.target }}
73- args : --release --out dist --find- interpreter
103+ args : --release --out dist --interpreter ${{ matrix.platform.interpreter }}
74104 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
75105 manylinux : musllinux_1_2
76106 rust-toolchain : nightly
77107
78- - name : Upload wheels
79- uses : actions/upload-artifact@v4
108+ - name : " Upload wheels"
109+ uses : actions/upload-artifact@v4.6.2
80110 with :
81111 name : wheels-musllinux-${{ matrix.platform.target }}
82112 path : dist
83-
113+
84114 windows :
85115 runs-on : ${{ matrix.platform.runner }}
86116 strategy :
87117 matrix :
88118 platform :
89- - runner : windows-latest
90- target : x64
91- - runner : windows-latest
92- target : x86
119+ - {
120+ runner : windows-latest,
121+ target : x64,
122+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
123+ }
124+ - {
125+ runner : windows-latest,
126+ target : x86,
127+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t"
128+ }
93129 steps :
94- - uses : actions/checkout@v4
95- - uses : actions/setup-python@v5
130+ - uses : actions/checkout@v5.0.0
131+ with :
132+ persist-credentials : false
133+ - uses : actions/setup-python@v6.0.0
96134 with :
97135 python-version : 3.x
98136 architecture : ${{ matrix.platform.target }}
99- allow-prereleases : true
100-
101- - name : Build wheels
102- uses : PyO3/maturin-action@v1
137+ - name : " Build wheels"
138+ uses : PyO3/maturin-action@v1.49.4
103139 with :
104140 target : ${{ matrix.platform.target }}
105- args : --release --out dist --find- interpreter
141+ args : --release --out dist --interpreter ${{ matrix.platform.interpreter }}
106142 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
107143 rust-toolchain : nightly
108-
109- - name : Upload wheels
110- uses : actions/upload-artifact@v4
144+
145+ - name : " Upload wheels"
146+ uses : actions/upload-artifact@v4.6.2
111147 with :
112148 name : wheels-windows-${{ matrix.platform.target }}
113149 path : dist
@@ -117,53 +153,65 @@ jobs:
117153 strategy :
118154 matrix :
119155 platform :
120- - runner : macos-13
121- target : x86_64
122- - runner : macos-14
123- target : aarch64
156+ - {
157+ runner : macos-13,
158+ target : x86_64,
159+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
160+ }
161+ - {
162+ runner : macos-14,
163+ target : aarch64,
164+ interpreter : " 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.11"
165+ }
124166 steps :
125- - uses : actions/checkout@v4
126- - uses : actions/setup-python@v5
167+ - uses : actions/checkout@v5.0.0
168+ with :
169+ persist-credentials : false
170+
171+ - uses : actions/setup-python@v6.0.0
127172 with :
128173 python-version : 3.x
129- allow-prereleases : true
130-
131- - name : Build wheels
132- uses : PyO3/maturin-action@v1
174+
175+ - name : " Build wheels"
176+ uses : PyO3/maturin-action@v1.49.4
133177 with :
134178 target : ${{ matrix.platform.target }}
135- args : --release --out dist --find- interpreter
179+ args : --release --out dist --interpreter ${{ matrix.platform.interpreter }}
136180 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
137181 rust-toolchain : nightly
138182
139- - name : Upload wheels
140- uses : actions/upload-artifact@v4
183+ - name : " Upload wheels"
184+ uses : actions/upload-artifact@v4.6.2
141185 with :
142186 name : wheels-macos-${{ matrix.platform.target }}
143187 path : dist
144188
145- sdist :
189+ build-sdist :
190+ name : " build sdist"
146191 runs-on : ubuntu-latest
147192 steps :
148- - uses : actions/checkout@v4
149- - name : Build sdist
150- uses : PyO3/maturin-action@v1
193+ - uses : actions/checkout@v5.0.0
194+ with :
195+ persist-credentials : false
196+
197+ - name : " Build sdist"
198+ uses : PyO3/maturin-action@v1.49.4
151199 with :
152200 command : sdist
153201 args : --out dist
154202 rust-toolchain : nightly
155-
156- - name : Upload sdist
157- uses : actions/upload-artifact@v4
203+
204+ - name : " Upload sdist"
205+ uses : actions/upload-artifact@v4.6.2
158206 with :
159207 name : wheels-sdist
160208 path : dist
161-
209+
162210 release :
163- name : Release
211+ name : " release "
164212 runs-on : ubuntu-latest
165213 if : ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
166- needs : [linux, musllinux, windows, macos, sdist]
214+ needs : [linux, musllinux, windows, macos, build- sdist]
167215 permissions :
168216 # Use to sign the release artifacts
169217 id-token : write
@@ -172,16 +220,18 @@ jobs:
172220 # Used to generate artifact attestation
173221 attestations : write
174222 steps :
175- - uses : actions/download-artifact@v4
176- - name : Generate artifact attestation
177- uses : actions/attest-build-provenance@v2
223+ - uses : actions/download-artifact@v5.0.0
224+ - name : " Generate artifact attestation"
225+ uses : actions/attest-build-provenance@v3.0.0
178226 with :
179- subject-path : ' wheels-*/*'
180- - name : Publish to PyPI
227+ subject-path : " wheels-*/*"
228+
229+ - name : " Publish to PyPI"
181230 if : ${{ startsWith(github.ref, 'refs/tags/') }}
182- uses : PyO3/maturin-action@v1
231+ uses : PyO3/maturin-action@v1.49.4
183232 env :
184233 MATURIN_PYPI_TOKEN : ${{ secrets.PYPI_API_TOKEN }}
234+
185235 with :
186236 command : upload
187237 args : --non-interactive --skip-existing wheels-*/*
0 commit comments