Skip to content

Commit fe09809

Browse files
committed
Build manylinux/musllinux aarch64 wheels
Replaces the duplicated manylinux_x86_64/musllinux_i686 matrix entries with aarch64 builds on GitHub's native ubuntu-24.04-arm runner (no QEMU emulation needed). Also bumps actions/checkout, cibuildwheel, and upload/download-artifact past the retired v3 actions (GitHub now hard-fails any job using actions/upload-artifact@v3), which was blocking CI on master entirely. upload-artifact v4 requires unique names per upload, so each matrix leg and the sdist job now upload under distinct names, merged back together in upload_pypi via download-artifact's pattern/merge-multiple. Closes #80
1 parent ddd3a97 commit fe09809

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

.github/workflows/wheels.yml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@ jobs:
3434
buildplat:
3535
- [ubuntu-latest, manylinux_x86_64, auto]
3636
- [ubuntu-latest, musllinux_i686, auto]
37-
- [ubuntu-latest, manylinux_x86_64, auto]
38-
- [ubuntu-latest, musllinux_i686, auto]
37+
# No floating "ubuntu-latest-arm" alias exists (yet) for GitHub's native arm64
38+
# runners, only version-pinned images:
39+
# https://github.blog/changelog/2024-06-24-github-actions-ubuntu-24-04-image-now-available-for-arm64-runners/
40+
- [ubuntu-24.04-arm, manylinux_aarch64, auto]
41+
- [ubuntu-24.04-arm, musllinux_aarch64, auto]
3942
- [windows-latest, win_amd64, auto]
4043
- [windows-latest, win32, auto]
4144
- [macos-latest, macosx_x86_64, x86_64]
@@ -44,29 +47,31 @@ jobs:
4447
python: ["cp310"]
4548

4649
steps:
47-
- uses: actions/checkout@v3
50+
- uses: actions/checkout@v4
4851

4952
- name: Build wheels
50-
uses: pypa/cibuildwheel@v2.15.0
53+
uses: pypa/cibuildwheel@v2.20.0
5154
env:
5255
CIBW_ARCHS: ${{ matrix.buildplat[2] }}
5356
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
5457

55-
- uses: actions/upload-artifact@v3
58+
- uses: actions/upload-artifact@v4
5659
with:
60+
name: wheels-${{ matrix.buildplat[1] }}
5761
path: ./wheelhouse/*.whl
5862

5963
build_sdist:
6064
name: Build source distribution
6165
runs-on: ubuntu-latest
6266
steps:
63-
- uses: actions/checkout@v3
67+
- uses: actions/checkout@v4
6468

6569
- name: Build sdist
6670
run: pipx run build --sdist
6771

68-
- uses: actions/upload-artifact@v3
72+
- uses: actions/upload-artifact@v4
6973
with:
74+
name: sdist
7075
path: dist/*.tar.gz
7176

7277
upload_pypi:
@@ -77,12 +82,14 @@ jobs:
7782
# alternatively, to publish when a GitHub Release is created, use the following rule:
7883
# if: github.event_name == 'release' && github.event.action == 'published'
7984
steps:
80-
- uses: actions/download-artifact@v3
85+
- uses: actions/download-artifact@v4
8186
with:
82-
# unpacks default artifact into dist/
83-
# if `name: artifact` is omitted, the action will create extra parent dir
84-
name: artifact
87+
# v4 requires unique names per upload (unlike v3, which merged same-named
88+
# artifacts), so build_wheels/build_sdist upload under distinct names and
89+
# this flattens them all into dist/
8590
path: dist
91+
pattern: "*"
92+
merge-multiple: true
8693

8794
- uses: pypa/gh-action-pypi-publish@v1.5.0
8895
with:

0 commit comments

Comments
 (0)