@@ -346,39 +346,36 @@ jobs:
346
346
* ${{ steps.hashes.outputs.asset_name_15 }} : `${{ steps.hashes.outputs.asset_hash_15 }}`
347
347
348
348
build_wheels :
349
- name : Build Python
350
- needs : versioning
349
+ name : Build Python ${{ matrix.python-version }} for ${{ matrix.os }}
351
350
runs-on : ${{ matrix.os }}
351
+ needs : versioning
352
352
strategy :
353
- fail-fast : false
354
353
matrix :
355
- os : [ubuntu-22.04, macOS-11 , windows-2022 ]
356
-
354
+ os : [ubuntu-latest, macos-latest , windows-latest ]
355
+ python-version : ["37", "38", "39", "310", "311", "312"]
357
356
steps :
358
- - uses : actions/checkout@v3
357
+ - uses : actions/checkout@v4
359
358
with :
360
359
ref : " main"
361
- - uses : actions/setup-python@v3
362
-
363
- - name : Setup Docker
364
- if : matrix.os == 'ubuntu-22.04'
365
-
360
+ - name : Set up Python
361
+ uses : actions/setup-python@v5
366
362
with :
367
- version : 23.0.1
368
-
363
+ python-version : 3.x
369
364
- name : Setup QEMU
370
- if : matrix.os == 'ubuntu-22.04'
371
-
372
-
373
- - name : Install CIBuildWheel
365
+ if : matrix.os == 'ubuntu-latest' # We only need QEMU for Linux builds
366
+ uses : docker/setup-qemu-action@v3
367
+ - name : Install cibuildwheel
374
368
run : python -m pip install cibuildwheel
375
-
376
369
- name : Build wheels
377
- run : python -m cibuildwheel
378
-
379
- - uses : actions/upload-artifact@v3
370
+ run : cibuildwheel --output-dir wheelhouse
371
+ env :
372
+ CIBW_BUILD : cp${{ matrix.python-version }}-*
373
+ - name : Upload wheels
374
+ uses : actions/upload-artifact@v4
380
375
with :
376
+ name : cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
381
377
path : ./wheelhouse/*.whl
378
+ overwrite : true
382
379
383
380
publish_python :
384
381
name : Publish Python
@@ -392,17 +389,20 @@ jobs:
392
389
393
390
steps :
394
391
- name : Download artifacts
395
- uses : actions/download-artifact@v3.0.2
392
+ uses : actions/download-artifact@v4
396
393
with :
397
- path : ./dist/
394
+ # unpacks all CIBW artifacts into dist/
395
+ pattern : cibw-*
396
+ path : dist
397
+ merge-multiple : true
398
398
399
399
- name : Publish to PyPi
400
400
uses : pypa/gh-action-pypi-publish@release/v1
401
401
with :
402
- packages-dir : ./ dist/artifact
402
+ packages-dir : dist
403
403
verbose : true
404
404
print-hash : true
405
-
405
+
406
406
publish_javascript :
407
407
name : Publish JavaScript
408
408
needs : versioning
0 commit comments