@@ -187,86 +187,68 @@ jobs:
187187 - name : Linux x86_64
188188 runner : ubuntu-latest
189189 platform-name : linux-x86_64
190- is-musl : false
191- python-version : " 3.12"
192- is-min-deps : false
193-
194- - name : Linux musl
195- runner : ubuntu-22.04
196- platform-name : linux-musl-x86_64
197- is-musl : true
198190 python-version : " 3.12"
199191 is-min-deps : false
200192
201193 - name : Linux ARM64
202194 runner : ubuntu-24.04-arm
203195 platform-name : linux-aarch64
204- is-musl : false
205196 python-version : " 3.12"
206197 is-min-deps : false
207198
208199 - name : Windows
209200 runner : windows-latest
210201 platform-name : windows-x64
211- is-musl : false
212202 python-version : " 3.12"
213203 is-min-deps : false
214204
215205 - name : macOS x86_64
216206 runner : macos-13
217207 platform-name : macos-x86_64
218- is-musl : false
219208 python-version : " 3.12"
220209 is-min-deps : false
221210
222211 - name : macOS ARM64
223212 runner : macos-14
224213 platform-name : macos-arm64
225- is-musl : false
226214 python-version : " 3.12"
227215 is-min-deps : false
228216
229217 # Additional Python versions for Linux x86_64
230218 - name : Python 3.9
231219 runner : ubuntu-latest
232220 platform-name : linux-x86_64
233- is-musl : false
234221 python-version : " 3.9"
235222 is-min-deps : false
236223
237224 - name : Python 3.10
238225 runner : ubuntu-latest
239226 platform-name : linux-x86_64
240- is-musl : false
241227 python-version : " 3.10"
242228 is-min-deps : false
243229
244230 - name : Python 3.11
245231 runner : ubuntu-latest
246232 platform-name : linux-x86_64
247- is-musl : false
248233 python-version : " 3.11"
249234 is-min-deps : false
250235
251236 - name : Python 3.13
252237 runner : ubuntu-latest
253238 platform-name : linux-x86_64
254- is-musl : false
255239 python-version : " 3.13"
256240 is-min-deps : false
257241
258242 - name : Python 3.14 Pre Release
259243 runner : ubuntu-latest
260244 platform-name : linux-x86_64
261- is-musl : false
262245 python-version : " 3.14"
263246 is-min-deps : false
264247
265248 # Minimum dependencies test
266249 - name : Min Dependencies
267250 runner : ubuntu-latest
268251 platform-name : linux-x86_64
269- is-musl : false
270252 python-version : " 3.9"
271253 is-min-deps : true
272254 steps :
@@ -277,7 +259,7 @@ jobs:
277259 uses : astral-sh/setup-uv@v6
278260 with :
279261 version : " 0.8.19"
280- enable-cache : ${{ matrix.config.is-musl && 'false' || ' true' }}
262+ enable-cache : " true"
281263 cache-dependency-glob : " **/uv.lock"
282264 python-version : ${{ matrix.config.python-version }}
283265
@@ -298,21 +280,6 @@ jobs:
298280 uv pip install --force-reinstall "$WHEEL_PATH"
299281 uv run --no-sync pytest tests/
300282
301- # Musl tests
302- - name : Run musl tests
303- if : ${{ !matrix.config.is-min-deps && matrix.config.is-musl }}
304- uses : addnab/docker-run-action@v3
305- with :
306- image : ghcr.io/astral-sh/uv:0.8.19-alpine
307- options : -v ${{ github.workspace }}:/io -w /io
308- run : |
309- apk add python3 py3-pip py3-psutil gcc python3-dev musl-dev linux-headers
310- WHEEL_PATH=$(ls dist/*.whl)
311- uv venv
312- uv sync --no-install-project --no-default-groups --group=test
313- uv pip install --force-reinstall "$WHEEL_PATH"
314- uv run --no-sync pytest tests/
315-
316283 # Minimum dependencies test
317284 - name : Run tests with minimum dependencies
318285 if : ${{ matrix.config.is-min-deps }}
@@ -323,3 +290,39 @@ jobs:
323290 uv sync --resolution lowest-direct --no-install-project --no-default-groups --group=test
324291 uv pip install --no-deps --force-reinstall "$WHEEL_PATH"
325292 uv run --no-sync --no-default-groups --group=test pytest tests/
293+
294+ test-musl :
295+ needs : build
296+ name : Test - Linux Musl
297+ runs-on : ubuntu-latest
298+ container : ghcr.io/astral-sh/uv:0.8.19-alpine
299+ steps :
300+ - uses : actions/checkout@v4
301+
302+ - name : Install dependencies
303+ shell : sh
304+ run : |
305+ apk add tar python3 py3-pip py3-psutil gcc python3-dev musl-dev linux-headers
306+
307+ - name : Install uv
308+ uses : astral-sh/setup-uv@v6
309+ with :
310+ version : " 0.8.19"
311+ enable-cache : " true"
312+ cache-dependency-glob : " **/uv.lock"
313+ python-version : " 3.12"
314+
315+ - name : Download wheels
316+ uses : actions/download-artifact@v4
317+ with :
318+ name : wheels-linux-musl-x86_64
319+ path : dist
320+
321+ - name : Run musl tests
322+ shell : sh
323+ run : |
324+ WHEEL_PATH=$(ls dist/*.whl)
325+ uv venv
326+ uv sync --no-install-project --no-default-groups --group=test
327+ uv pip install --force-reinstall "$WHEEL_PATH"
328+ uv run --no-sync pytest tests/
0 commit comments