Skip to content

Commit b5558b3

Browse files
authored
ci: improve musl linux test stage (#69)
1 parent 7a41bc6 commit b5558b3

File tree

1 file changed

+37
-34
lines changed

1 file changed

+37
-34
lines changed

.github/workflows/build-test.yml

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)