@@ -58,10 +58,12 @@ jobs:
58
58
shell : bash
59
59
run : |
60
60
set -e
61
+ curl -LsSf https://astral.sh/uv/install.sh | sh
62
+ export PATH="$HOME/.local/bin:$PATH"
61
63
python3 -m venv .venv
62
64
source .venv/bin/activate
63
- pip install pycrc32 --find-links dist --force-reinstall
64
- pip install pytest
65
+ uv pip install pycrc32 --find-links dist --force-reinstall
66
+ uv pip install pytest
65
67
pytest
66
68
- name : pytest
67
69
if : ${{ !startsWith(matrix.platform.target, 'x86') && matrix.platform.target != 'ppc64' }}
@@ -72,11 +74,14 @@ jobs:
72
74
githubToken : ${{ github.token }}
73
75
install : |
74
76
apt-get update
75
- apt-get install -y --no-install-recommends python3 python3-pip
76
- pip3 install -U pip pytest
77
+ apt-get install -y --no-install-recommends python3 python3-pip curl
78
+ curl -LsSf https://astral.sh/uv/install.sh | sh
79
+ export PATH="$HOME/.local/bin:$PATH"
80
+ uv pip install --system pytest
77
81
run : |
78
82
set -e
79
- pip3 install pycrc32 --find-links dist --force-reinstall
83
+ export PATH="$HOME/.local/bin:$PATH"
84
+ uv pip install --system pycrc32 --find-links dist --force-reinstall
80
85
pytest
81
86
82
87
musllinux :
@@ -117,11 +122,13 @@ jobs:
117
122
options : -v ${{ github.workspace }}:/io -w /io
118
123
run : |
119
124
set -e
120
- apk add py3-pip py3-virtualenv
125
+ apk add py3-pip py3-virtualenv curl
126
+ curl -LsSf https://astral.sh/uv/install.sh | sh
127
+ export PATH="$HOME/.local/bin:$PATH"
121
128
python3 -m virtualenv .venv
122
129
source .venv/bin/activate
123
- pip install pycrc32 --no-index --find-links dist --force-reinstall
124
- pip install pytest
130
+ uv pip install pycrc32 --no-index --find-links dist --force-reinstall
131
+ uv pip install pytest
125
132
pytest
126
133
- name : pytest
127
134
if : ${{ !startsWith(matrix.platform.target, 'x86') }}
@@ -131,13 +138,15 @@ jobs:
131
138
distro : alpine_latest
132
139
githubToken : ${{ github.token }}
133
140
install : |
134
- apk add py3-virtualenv
141
+ apk add py3-virtualenv curl
142
+ curl -LsSf https://astral.sh/uv/install.sh | sh
135
143
run : |
136
144
set -e
145
+ export PATH="$HOME/.local/bin:$PATH"
137
146
python3 -m virtualenv .venv
138
147
source .venv/bin/activate
139
- pip install pytest
140
- pip install pycrc32 --find-links dist --force-reinstall
148
+ uv pip install pytest
149
+ uv pip install pycrc32 --find-links dist --force-reinstall
141
150
pytest
142
151
143
152
windows :
@@ -171,10 +180,12 @@ jobs:
171
180
shell : bash
172
181
run : |
173
182
set -e
183
+ curl -LsSf https://astral.sh/uv/install.sh | sh
184
+ export PATH="$HOME/.local/bin:$PATH"
174
185
python3 -m venv .venv
175
186
source .venv/Scripts/activate
176
- pip install pycrc32 --find-links dist --force-reinstall
177
- pip install pytest
187
+ uv pip install pycrc32 --find-links dist --force-reinstall
188
+ uv pip install pytest
178
189
pytest
179
190
180
191
macos :
@@ -205,10 +216,12 @@ jobs:
205
216
- name : pytest
206
217
run : |
207
218
set -e
219
+ curl -LsSf https://astral.sh/uv/install.sh | sh
220
+ export PATH="$HOME/.local/bin:$PATH"
208
221
python3 -m venv .venv
209
222
source .venv/bin/activate
210
- pip install pycrc32 --find-links dist --force-reinstall
211
- pip install pytest
223
+ uv pip install pycrc32 --find-links dist --force-reinstall
224
+ uv pip install pytest
212
225
pytest
213
226
214
227
sdist :
@@ -226,11 +239,35 @@ jobs:
226
239
name : wheels-sdist
227
240
path : dist
228
241
242
+ test-python-versions :
243
+ name : Test Python versions
244
+ runs-on : ubuntu-latest
245
+ strategy :
246
+ matrix :
247
+ python-version : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
248
+ steps :
249
+ - uses : actions/checkout@v4
250
+ - uses : actions/setup-python@v5
251
+ with :
252
+ python-version : ${{ matrix.python-version }}
253
+ - name : Install uv
254
+ run : |
255
+ curl -LsSf https://astral.sh/uv/install.sh | sh
256
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
257
+ - name : Build and test
258
+ run : |
259
+ uv tool install maturin
260
+ python -m venv .venv
261
+ source .venv/bin/activate
262
+ maturin develop
263
+ uv pip install pytest
264
+ pytest
265
+
229
266
release :
230
267
name : Release
231
268
runs-on : ubuntu-latest
232
269
if : ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
233
- needs : [linux, musllinux, windows, macos, sdist]
270
+ needs : [linux, musllinux, windows, macos, sdist, test-python-versions ]
234
271
permissions :
235
272
# Use to sign the release artifacts
236
273
id-token : write
0 commit comments