From a4d8c40dc2aab535d107fd0f940f05d68c3d0775 Mon Sep 17 00:00:00 2001 From: kingchenc Date: Fri, 22 May 2026 16:45:20 +0200 Subject: [PATCH] E6: extend the Python release matrix to musl and Windows arm64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit python-wheels built only glibc Linux (x86_64/aarch64), macOS, and Windows x64 — Alpine/musl users and Windows arm64 had no wheel. Add musllinux_1_2 wheels for x86_64 and aarch64 Linux and an aarch64 wheel on the windows-11-arm runner. The upload artifact name now includes the manylinux value so the glibc and musl builds of the same architecture do not collide. The Node release matrix already covers linux-arm64 and win32-arm64 (added in B11); Node musl is left out, as B11 documented, because it needs a cross/container setup. --- .github/workflows/release.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b4c3ccba..2b53b838 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,16 +83,23 @@ jobs: # PyPI: cross-platform wheels + sdist # -------------------------------------------------------------------------- python-wheels: - name: Build wheels (${{ matrix.target }} on ${{ matrix.os }}) + name: Build wheels (${{ matrix.target }}/${{ matrix.manylinux }} on ${{ matrix.os }}) strategy: fail-fast: false matrix: include: + # glibc Linux (manylinux) - { os: ubuntu-latest, target: x86_64, manylinux: auto } - { os: ubuntu-latest, target: aarch64, manylinux: auto } + # musl Linux (Alpine and other musl distros) + - { os: ubuntu-latest, target: x86_64, manylinux: musllinux_1_2 } + - { os: ubuntu-latest, target: aarch64, manylinux: musllinux_1_2 } + # macOS - { os: macos-latest, target: x86_64, manylinux: auto } - { os: macos-latest, target: aarch64, manylinux: auto } + # Windows - { os: windows-latest, target: x64, manylinux: auto } + - { os: windows-11-arm, target: aarch64, manylinux: auto } runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 @@ -107,7 +114,9 @@ jobs: manylinux: ${{ matrix.manylinux }} - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: - name: wheels-${{ matrix.os }}-${{ matrix.target }} + # Include manylinux in the name so the glibc and musl x86_64/aarch64 + # builds do not collide on the same artifact name. + name: wheels-${{ matrix.os }}-${{ matrix.target }}-${{ matrix.manylinux }} path: bindings/python/dist/* python-sdist: