@@ -19,26 +19,32 @@ permissions:
1919 contents : read
2020
2121jobs :
22+ lint :
23+ runs-on : ubuntu-latest
24+ steps :
25+ - uses : actions/checkout@v5
26+ - uses : astral-sh/setup-uv@v5
27+ with :
28+ enable-cache : false
29+ - name : Ruff lint
30+ run : uvx ruff@0.15.10 check
31+ - name : Ruff format
32+ run : uvx ruff@0.15.10 format --check
33+ - name : Type check (ty)
34+ run : uvx --with ipython ty@0.0.30 check
35+
2236 linux :
2337 runs-on : ${{ matrix.platform.runner }}
2438 strategy :
2539 matrix :
2640 platform :
2741 - runner : ubuntu-latest
2842 target : x86_64
29- - runner : ubuntu-latest
30- target : x86
31- - runner : ubuntu-latest
43+ - runner : ubuntu-24.04-arm
3244 target : aarch64
33- - runner : ubuntu-latest
34- target : armv7
35- - runner : ubuntu-latest
36- target : s390x
37- - runner : ubuntu-latest
38- target : ppc64le
3945 steps :
40- - uses : actions/checkout@v4
41- - uses : actions/setup-python@v5
46+ - uses : actions/checkout@v5
47+ - uses : actions/setup-python@v6
4248 with :
4349 python-version : 3.x
4450 - name : Build wheels
4854 args : --release --out dist --find-interpreter
4955 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
5056 manylinux : auto
57+ before-script-linux : |
58+ if command -v yum >/dev/null; then yum install -y systemd-devel; fi
59+ if command -v apt-get >/dev/null; then apt-get update && apt-get install -y libudev-dev; fi
60+ if command -v apk >/dev/null; then apk add --no-cache eudev-dev; fi
5161 - name : Upload wheels
5262 uses : actions/upload-artifact@v4
5363 with :
@@ -61,15 +71,11 @@ jobs:
6171 platform :
6272 - runner : ubuntu-latest
6373 target : x86_64
64- - runner : ubuntu-latest
65- target : x86
66- - runner : ubuntu-latest
74+ - runner : ubuntu-24.04-arm
6775 target : aarch64
68- - runner : ubuntu-latest
69- target : armv7
7076 steps :
71- - uses : actions/checkout@v4
72- - uses : actions/setup-python@v5
77+ - uses : actions/checkout@v5
78+ - uses : actions/setup-python@v6
7379 with :
7480 python-version : 3.x
7581 - name : Build wheels
7985 args : --release --out dist --find-interpreter
8086 sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
8187 manylinux : musllinux_1_2
88+ before-script-linux : |
89+ if command -v yum >/dev/null; then yum install -y systemd-devel; fi
90+ if command -v apt-get >/dev/null; then apt-get update && apt-get install -y libudev-dev; fi
91+ if command -v apk >/dev/null; then apk add --no-cache eudev-dev; fi
8292 - name : Upload wheels
8393 uses : actions/upload-artifact@v4
8494 with :
95105 - runner : windows-latest
96106 target : x86
97107 steps :
98- - uses : actions/checkout@v4
99- - uses : actions/setup-python@v5
108+ - uses : actions/checkout@v5
109+ - uses : actions/setup-python@v6
100110 with :
101111 python-version : 3.x
102112 architecture : ${{ matrix.platform.target }}
@@ -122,8 +132,8 @@ jobs:
122132 - runner : macos-latest
123133 target : x86_64
124134 steps :
125- - uses : actions/checkout@v4
126- - uses : actions/setup-python@v5
135+ - uses : actions/checkout@v5
136+ - uses : actions/setup-python@v6
127137 with :
128138 python-version : 3.x
129139 - name : Build wheels
@@ -141,7 +151,7 @@ jobs:
141151 sdist :
142152 runs-on : ubuntu-latest
143153 steps :
144- - uses : actions/checkout@v4
154+ - uses : actions/checkout@v5
145155 - name : Build sdist
146156 uses : PyO3/maturin-action@v1
147157 with :
@@ -157,7 +167,7 @@ jobs:
157167 name : Release
158168 runs-on : ubuntu-latest
159169 if : ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
160- needs : [linux, musllinux, windows, macos, sdist]
170+ needs : [lint, linux, musllinux, windows, macos, sdist]
161171 permissions :
162172 # Use to sign the release artifacts
163173 id-token : write
0 commit comments