@@ -20,17 +20,29 @@ jobs:
2020 include :
2121 - os : ubuntu-latest
2222 package-suffix : linux-amd64
23+ cibw-build : cp310-manylinux_x86_64
2324 - os : ubuntu-arm
2425 package-suffix : linux-aarch64
26+ cibw-build : cp310-manylinux_aarch64
27+ runsOn : ubuntu-24.04-arm64-2-core
28+ - os : ubuntu-latest
29+ package-suffix : linux-musl-amd64
30+ cibw-build : cp310-musllinux_x86_64
31+ - os : ubuntu-arm
32+ package-suffix : linux-musl-aarch64
33+ cibw-build : cp310-musllinux_aarch64
2534 runsOn : ubuntu-24.04-arm64-2-core
2635 - os : macos-intel
2736 package-suffix : macos-amd64
37+ cibw-build : cp310-macosx_x86_64
2838 runsOn : macos-15-intel
2939 - os : macos-arm
3040 package-suffix : macos-aarch64
41+ cibw-build : cp310-macosx_arm64
3142 runsOn : macos-14
3243 - os : windows-latest
3344 package-suffix : windows-amd64
45+ cibw-build : cp310-win_amd64
3446 runs-on : ${{ matrix.runsOn || matrix.os }}
3547 permissions :
3648 contents : read
6375
6476 # Build the wheel
6577 - run : uv run cibuildwheel --output-dir dist
78+ env :
79+ CIBW_BUILD : ${{ matrix.cibw-build }}
6680
6781 # Install the wheel in a new venv and run a test
6882 - name : Test wheel
83+ if : ${{ !contains(matrix.package-suffix, 'musl') }}
6984 shell : bash
7085 run : |
7186 mkdir __test_wheel__
8095 ./.venv/$bindir/pip install --prefer-binary ../dist/*.whl
8196 ./.venv/$bindir/python -m pytest -s tests/worker/test_workflow.py -k test_workflow_hello
8297
98+ - name : Test Alpine wheel
99+ if : ${{ contains(matrix.package-suffix, 'musl') }}
100+ uses : ./.github/actions/alpine-package-smoke
101+ with :
102+ wheel-dir : dist
103+
83104 # Upload dist
84105 - uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
85106 with :
@@ -200,11 +221,36 @@ jobs:
200221 index-url : https://test.pypi.org/simple/
201222 dependency-index-url : https://pypi.org/simple/
202223
224+ smoke_testpypi_alpine :
225+ name : Smoke test TestPyPI package on Alpine (${{ matrix.arch }})
226+ needs :
227+ - verify_artifacts
228+ - publish_testpypi
229+ strategy :
230+ fail-fast : false
231+ matrix :
232+ include :
233+ - arch : x64
234+ runsOn : ubuntu-latest
235+ - arch : arm64
236+ runsOn : ubuntu-24.04-arm64-2-core
237+ runs-on : ${{ matrix.runsOn }}
238+ timeout-minutes : 10
239+ steps :
240+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
241+ - name : Install and load package
242+ uses : ./.github/actions/alpine-package-smoke
243+ with :
244+ version : ${{ needs.verify_artifacts.outputs.version }}
245+ index-url : https://test.pypi.org/simple/
246+ dependency-index-url : https://pypi.org/simple/
247+
203248 publish_pypi :
204249 name : Publish to PyPI
205250 needs :
206251 - verify_artifacts
207252 - smoke_testpypi
253+ - smoke_testpypi_alpine
208254 runs-on : ubuntu-latest
209255 timeout-minutes : 10
210256 environment : pypi
@@ -247,11 +293,35 @@ jobs:
247293 version : ${{ needs.verify_artifacts.outputs.version }}
248294 index-url : https://pypi.org/simple/
249295
296+ smoke_pypi_alpine :
297+ name : Smoke test PyPI package on Alpine (${{ matrix.arch }})
298+ needs :
299+ - verify_artifacts
300+ - publish_pypi
301+ strategy :
302+ fail-fast : false
303+ matrix :
304+ include :
305+ - arch : x64
306+ runsOn : ubuntu-latest
307+ - arch : arm64
308+ runsOn : ubuntu-24.04-arm64-2-core
309+ runs-on : ${{ matrix.runsOn }}
310+ timeout-minutes : 10
311+ steps :
312+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
313+ - name : Install and load package
314+ uses : ./.github/actions/alpine-package-smoke
315+ with :
316+ version : ${{ needs.verify_artifacts.outputs.version }}
317+ index-url : https://pypi.org/simple/
318+
250319 create_draft_release :
251320 name : Create draft GitHub Release
252321 needs :
253322 - verify_artifacts
254323 - smoke_pypi
324+ - smoke_pypi_alpine
255325 runs-on : ubuntu-latest
256326 timeout-minutes : 5
257327 permissions :
0 commit comments