From 721ff391c12047188fad47942b13152592690481 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Mon, 22 Jan 2024 02:48:51 +0100 Subject: [PATCH 01/14] Build Linux platform wheels with `cibuildwheel` --- .github/workflows/ci-cd.yml | 48 +++++++++++++++++++++++++++++++++++++ pyproject.toml | 11 +++++++++ 2 files changed, 59 insertions(+) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 0cee081ab..b6aed78c7 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -661,6 +661,54 @@ jobs: || 'false' }} + build-bin-manylinux-tested-arches-cibuildwheel: + name: >- + [cibuildwheel] 📦 ${{ needs.pre-setup.outputs.git-tag }} + [mode: ${{ + fromJSON(needs.pre-setup.outputs.is-untagged-devel) + && 'nightly' || '' + }}${{ + fromJSON(needs.pre-setup.outputs.release-requested) + && 'release' || '' + }}${{ + ( + !fromJSON(needs.pre-setup.outputs.is-untagged-devel) + && !fromJSON(needs.pre-setup.outputs.release-requested) + ) && 'test' || '' + }}] manylinux + needs: + - build-src + - pre-setup # transitive, for accessing settings + strategy: + matrix: + os: + - ubuntu + uses: ./.github/workflows/reusable-cibuildwheel.yml + with: + os: ${{ matrix.os }} + wheel-tags-to-skip: >- + ${{ + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + pp*' + || '' + }} + source-tarball-name: >- + ${{ needs.pre-setup.outputs.sdist-artifact-name }} + dists-artifact-name: >- + ${{ needs.pre-setup.outputs.dists-artifact-name }} + qemu: all + cython-tracing: >- # Cython line tracing for coverage collection + ${{ + fromJSON(needs.pre-setup.outputs.profiling-enabled) + && 'true' + || 'false' + }} + build-bin-manylinux-tested-arches: name: >- 📦 ${{ needs.pre-setup.outputs.git-tag }} diff --git a/pyproject.toml b/pyproject.toml index 9ccc99803..4b63d8436 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -158,6 +158,17 @@ PIP_NO_WARN_SCRIPT_LOCATION = "1" PRE_COMMIT_COLOR = "always" PY_COLORS = "1" +[tool.cibuildwheel.linux] +manylinux-aarch64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_aarch64:libssh-v0.9.6" +manylinux-ppc64le-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_ppc64le:libssh-v0.9.6" +manylinux-s390x-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_s390x:libssh-v0.9.6" +manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh-v0.9.6" + +[tool.cibuildwheel.linux.environment] +STATIC_DEPS_DIR = "$(cat .static-deps-path)" +LDFLAGS = "'-L${STATIC_DEPS_PREFIX}/lib64' '-L${STATIC_DEPS_PREFIX}/lib'" +LD_LIBRARY_PATH = "${STATIC_DEPS_PREFIX}/lib64:${STATIC_DEPS_PREFIX}/lib:${LD_LIBRARY_PATH}" + [tool.cibuildwheel.macos] before-build = [ "brew install libssh", # @0.9.4 # pinning the version does not work From 980b75f9ac2406606d95d0a7deb9ba5cbde0ebe3 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 00:35:54 +0100 Subject: [PATCH 02/14] debug! root dir --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4b63d8436..64efde448 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -165,7 +165,7 @@ manylinux-s390x-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_s390x:libssh-v0 manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh-v0.9.6" [tool.cibuildwheel.linux.environment] -STATIC_DEPS_DIR = "$(cat .static-deps-path)" +STATIC_DEPS_DIR = "$(cat /root/.static-deps-path)" LDFLAGS = "'-L${STATIC_DEPS_PREFIX}/lib64' '-L${STATIC_DEPS_PREFIX}/lib'" LD_LIBRARY_PATH = "${STATIC_DEPS_PREFIX}/lib64:${STATIC_DEPS_PREFIX}/lib:${LD_LIBRARY_PATH}" From 84a8efc871281a6cdd97a9f44acd2e3a42c7bfe2 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 02:00:48 +0100 Subject: [PATCH 03/14] debug! vars --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 64efde448..31926e48d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -159,6 +159,10 @@ PRE_COMMIT_COLOR = "always" PY_COLORS = "1" [tool.cibuildwheel.linux] +before-build = [ + "env", + "export", +] manylinux-aarch64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_aarch64:libssh-v0.9.6" manylinux-ppc64le-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_ppc64le:libssh-v0.9.6" manylinux-s390x-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_s390x:libssh-v0.9.6" From 5b253485bef3a86c52b58a37cd6096671696df94 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 02:03:25 +0100 Subject: [PATCH 04/14] debug! cat --- pyproject.toml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 31926e48d..da701a768 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,8 +170,10 @@ manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh- [tool.cibuildwheel.linux.environment] STATIC_DEPS_DIR = "$(cat /root/.static-deps-path)" -LDFLAGS = "'-L${STATIC_DEPS_PREFIX}/lib64' '-L${STATIC_DEPS_PREFIX}/lib'" -LD_LIBRARY_PATH = "${STATIC_DEPS_PREFIX}/lib64:${STATIC_DEPS_PREFIX}/lib:${LD_LIBRARY_PATH}" +# LDFLAGS = "'-L${STATIC_DEPS_PREFIX}/lib64' '-L${STATIC_DEPS_PREFIX}/lib'" +# LD_LIBRARY_PATH = "${STATIC_DEPS_PREFIX}/lib64:${STATIC_DEPS_PREFIX}/lib:${LD_LIBRARY_PATH}" +LDFLAGS = "'-L$(cat /root/.static-deps-path)/lib64' '-L$(cat /root/.static-deps-path)/lib'" +LD_LIBRARY_PATH = "$(cat /root/.static-deps-path)/lib64:$(cat /root/.static-deps-path)/lib:${LD_LIBRARY_PATH}" [tool.cibuildwheel.macos] before-build = [ From 2b0bb3cca80049d25a4f4afa0c61de9ea130f2c8 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 02:05:48 +0100 Subject: [PATCH 05/14] debug! cflags --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index da701a768..833a5ecfd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -172,6 +172,7 @@ manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh- STATIC_DEPS_DIR = "$(cat /root/.static-deps-path)" # LDFLAGS = "'-L${STATIC_DEPS_PREFIX}/lib64' '-L${STATIC_DEPS_PREFIX}/lib'" # LD_LIBRARY_PATH = "${STATIC_DEPS_PREFIX}/lib64:${STATIC_DEPS_PREFIX}/lib:${LD_LIBRARY_PATH}" +CFLAGS="'-I$(cat /root/.static-deps-path)/include'" LDFLAGS = "'-L$(cat /root/.static-deps-path)/lib64' '-L$(cat /root/.static-deps-path)/lib'" LD_LIBRARY_PATH = "$(cat /root/.static-deps-path)/lib64:$(cat /root/.static-deps-path)/lib:${LD_LIBRARY_PATH}" From 47b647e089d099a05aad819258d879ca335d2c6f Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 02:08:47 +0100 Subject: [PATCH 06/14] debug! unxdist pytest @ cibuildwheel --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 833a5ecfd..2120723e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -143,7 +143,7 @@ profile = "True" [tool.cibuildwheel] build-frontend = "build" test-requires = "pytest pytest-cov pytest-xdist pytest-forked" -test-command = "python -Im pytest -m smoke --no-cov {project}/tests" +test-command = "python -Im pytest -m smoke --no-cov -n 0 {project}/tests" skip = "pp*" [tool.cibuildwheel.environment] From ecb20613db79f693ef111d8f4254186215c2f930 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 16:31:24 +0100 Subject: [PATCH 07/14] fixup! skip 32-bit & musl --- pyproject.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 2120723e1..f1f30fd0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -167,6 +167,13 @@ manylinux-aarch64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_aarch64:libss manylinux-ppc64le-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_ppc64le:libssh-v0.9.6" manylinux-s390x-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_s390x:libssh-v0.9.6" manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh-v0.9.6" +skip = [ + "*-musllinux_*", # FIXME: musllinux needs us to provide with containers pre-built libssh + + # The support for 32-bit wheels has been dropped long ago: + "*-manylinux_i686", + "*-musllinux_i686", +] [tool.cibuildwheel.linux.environment] STATIC_DEPS_DIR = "$(cat /root/.static-deps-path)" From 35f3cda4b417d255b0c34b456b02d8c092115a2c Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Tue, 23 Jan 2024 17:58:39 +0100 Subject: [PATCH 08/14] fixup! skip pypy --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index f1f30fd0b..f5e258d43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -169,6 +169,7 @@ manylinux-s390x-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_s390x:libssh-v0 manylinux-x86_64-image = "ghcr.io/ansible/pylibssh-manylinux_2_28_x86_64:libssh-v0.9.6" skip = [ "*-musllinux_*", # FIXME: musllinux needs us to provide with containers pre-built libssh + "pp*", # FIXME: we don't ship these currently but could # The support for 32-bit wheels has been dropped long ago: "*-manylinux_i686", From 8d02a6a4c75de368840e2c59c2e97de41e0959e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Wed, 5 Jun 2024 21:26:49 +0200 Subject: [PATCH 09/14] Update the runner label to `ubuntu-latest` --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index b6aed78c7..dd62bac28 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -682,7 +682,7 @@ jobs: strategy: matrix: os: - - ubuntu + - ubuntu-latest uses: ./.github/workflows/reusable-cibuildwheel.yml with: os: ${{ matrix.os }} From 7f1c2453300c64e7efe5e9d03b2fe5d37d0d5ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Thu, 12 Sep 2024 21:09:10 +0200 Subject: [PATCH 10/14] Increase `cibuildwheel` timeout to 2 hours --- .github/workflows/reusable-cibuildwheel.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/reusable-cibuildwheel.yml b/.github/workflows/reusable-cibuildwheel.yml index f40629ab9..310279176 100644 --- a/.github/workflows/reusable-cibuildwheel.yml +++ b/.github/workflows/reusable-cibuildwheel.yml @@ -79,6 +79,7 @@ jobs: CIBW_ARCHS_MACOS: native CIBW_CONFIG_SETTINGS: >- # Cython line tracing for coverage collection with-cython-tracing=${{ inputs.cython-tracing }} + timeout-minutes: 120 - name: Upload built artifacts for testing and publishing uses: actions/upload-artifact@v3 From 8887d7facb7e77d48c221fcfb4b1582227d5ef2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Thu, 12 Sep 2024 23:00:45 +0200 Subject: [PATCH 11/14] debug! split jobs --- .github/workflows/ci-cd.yml | 69 +++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index dd62bac28..4078aeed8 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -683,20 +683,67 @@ jobs: matrix: os: - ubuntu-latest + wheel-tags-to-skip: + - >- + ${{ + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *_aarch64 + *_ppc64le + *_s390x + pp*' + || '' + }} + - >- + ${{ + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *_x86_64 + *_ppc64le + *_s390x + pp*' + || '' + }} + - >- + ${{ + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *_x86_64 + *_aarch64 + *_s390x + pp*' + || '' + }} + - >- + ${{ + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *_x86_64 + *_aarch64 + *_ppc64le + pp*' + || '' + }} uses: ./.github/workflows/reusable-cibuildwheel.yml with: os: ${{ matrix.os }} - wheel-tags-to-skip: >- - ${{ - !fromJSON(needs.pre-setup.outputs.release-requested) - && '*_i686 - *-macosx_universal2 - *-musllinux_* - *-win32 - *_arm64 - pp*' - || '' - }} + wheel-tags-to-skip: ${{ matrix.wheel-tags-to-skip }} source-tarball-name: >- ${{ needs.pre-setup.outputs.sdist-artifact-name }} dists-artifact-name: >- From acef1822d41ef07823f995b25d75a51d93263ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Fri, 13 Sep 2024 02:25:10 +0200 Subject: [PATCH 12/14] debug! collapse --- .github/workflows/ci-cd.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 4078aeed8..bda207ac4 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -692,9 +692,7 @@ jobs: *-musllinux_* *-win32 *_arm64 - *_aarch64 - *_ppc64le - *_s390x + *-*linux_{aarch64,ppc64le,s390x} pp*' || '' }} @@ -706,9 +704,7 @@ jobs: *-musllinux_* *-win32 *_arm64 - *_x86_64 - *_ppc64le - *_s390x + *-*linux_{x86_64,ppc64le,s390x} pp*' || '' }} @@ -720,9 +716,7 @@ jobs: *-musllinux_* *-win32 *_arm64 - *_x86_64 - *_aarch64 - *_s390x + *-*linux_{x86_64,aarch64,s390x} pp*' || '' }} @@ -734,9 +728,7 @@ jobs: *-musllinux_* *-win32 *_arm64 - *_x86_64 - *_aarch64 - *_ppc64le + *-*linux_{x86_64,aarch64,ppc64le} pp*' || '' }} From c790d9b87d88040ec8dabdb5a8b105162afefdda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Fri, 13 Sep 2024 02:31:17 +0200 Subject: [PATCH 13/14] Enable cibuildwheel arch skipping @ reusable workflow --- .github/workflows/reusable-cibuildwheel.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/reusable-cibuildwheel.yml b/.github/workflows/reusable-cibuildwheel.yml index 310279176..27bb0d99b 100644 --- a/.github/workflows/reusable-cibuildwheel.yml +++ b/.github/workflows/reusable-cibuildwheel.yml @@ -66,11 +66,11 @@ jobs: echo "CIBW_ARCHS_LINUX=${{ inputs.qemu }}" >> "${GITHUB_ENV}" shell: bash - # - name: Skip building some wheel tags - # if: inputs.wheel-tags-to-skip - # run: | - # echo "CIBW_SKIP=${{ inputs.wheel-tags-to-skip }}" >> "${GITHUB_ENV}" - # shell: bash + - name: Skip building some wheel tags + if: inputs.wheel-tags-to-skip + run: | + echo "CIBW_SKIP=${{ inputs.wheel-tags-to-skip }}" >> "${GITHUB_ENV}" + shell: bash - name: Build wheels uses: pypa/cibuildwheel@v2.16.5 From b05e3953adaf06c6025ad042ee03fa3bb95eb298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sviatoslav=20Sydorenko=20=28=D0=A1=D0=B2=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=29?= Date: Fri, 13 Sep 2024 02:35:30 +0200 Subject: [PATCH 14/14] debug! dedent --- .github/workflows/ci-cd.yml | 72 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index bda207ac4..af268acdb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -686,51 +686,51 @@ jobs: wheel-tags-to-skip: - >- ${{ - !fromJSON(needs.pre-setup.outputs.release-requested) - && '*_i686 - *-macosx_universal2 - *-musllinux_* - *-win32 - *_arm64 - *-*linux_{aarch64,ppc64le,s390x} - pp*' - || '' + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *-*linux_{aarch64,ppc64le,s390x} + pp*' + || '' }} - >- ${{ - !fromJSON(needs.pre-setup.outputs.release-requested) - && '*_i686 - *-macosx_universal2 - *-musllinux_* - *-win32 - *_arm64 - *-*linux_{x86_64,ppc64le,s390x} - pp*' - || '' + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *-*linux_{x86_64,ppc64le,s390x} + pp*' + || '' }} - >- ${{ - !fromJSON(needs.pre-setup.outputs.release-requested) - && '*_i686 - *-macosx_universal2 - *-musllinux_* - *-win32 - *_arm64 - *-*linux_{x86_64,aarch64,s390x} - pp*' - || '' + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *-*linux_{x86_64,aarch64,s390x} + pp*' + || '' }} - >- ${{ - !fromJSON(needs.pre-setup.outputs.release-requested) - && '*_i686 - *-macosx_universal2 - *-musllinux_* - *-win32 - *_arm64 - *-*linux_{x86_64,aarch64,ppc64le} - pp*' - || '' + !fromJSON(needs.pre-setup.outputs.release-requested) + && '*_i686 + *-macosx_universal2 + *-musllinux_* + *-win32 + *_arm64 + *-*linux_{x86_64,aarch64,ppc64le} + pp*' + || '' }} uses: ./.github/workflows/reusable-cibuildwheel.yml with: