From b3e0af12fb3dbca7825751f1661f2f8e04033758 Mon Sep 17 00:00:00 2001 From: aiolibsbot Date: Sat, 16 May 2026 21:56:52 +0000 Subject: [PATCH] ci: build wheels for iOS and Android on release tags Adds a new `build-wheels-for-mobile-archs` job, gated behind `pre-deploy` (tag-push only, mirroring the existing odd-archs job). The matrix covers `CIBW_PLATFORM=ios` on `macos-latest` and `CIBW_PLATFORM=android` on `ubuntu-latest`. Mobile testing requires simulator/emulator setup outside the scope of this job, so `CIBW_TEST_SKIP=*` is set; building verifies the C extension cross-compiles cleanly for both platforms. Refs aio-libs/multidict#1269. --- .github/workflows/ci-cd.yml | 33 +++++++++++++++++++++++++++++++++ CHANGES/1337.feature.rst | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 CHANGES/1337.feature.rst diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 952579bbe..e1953559b 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -524,10 +524,43 @@ jobs: || '*-musllinux_*' }} pp* + build-wheels-for-mobile-archs: + name: >- # ${{ '' } is a hack to nest jobs under the same sidebar category + 📦 Build wheels for mobile arches${{ '' }} + needs: + - build-pure-python-dists + - pre-deploy + - pre-setup # transitive, for accessing settings + strategy: + fail-fast: false + matrix: + include: + - platform: ios + runner-vm-os: macos-latest + - platform: android + runner-vm-os: ubuntu-latest + uses: ./.github/workflows/reusable-cibuildwheel.yml + with: + check-name: >- + Build ${{ matrix.platform }} wheels on ${{ matrix.runner-vm-os }} + runner-vm-os: ${{ matrix.runner-vm-os }} + timeout-minutes: 60 + source-tarball-name: >- + ${{ needs.build-pure-python-dists.outputs.sdist-filename }} + dists-artifact-name: ${{ needs.pre-setup.outputs.dists-artifact-name }} + # iOS and Android wheels target Python 3.13+ (PEP 730, PEP 738). + # Tests are skipped here because mobile testing requires + # simulator/emulator setup outside the scope of this job. + environment-variables: |- + CIBW_PLATFORM=${{ matrix.platform }} + + CIBW_TEST_SKIP=* + deploy: name: Deploy needs: - build-pure-python-dists + - build-wheels-for-mobile-archs - build-wheels-for-odd-archs - build-wheels-for-tested-arches - pre-setup # transitive, for accessing settings diff --git a/CHANGES/1337.feature.rst b/CHANGES/1337.feature.rst new file mode 100644 index 000000000..999d98f7d --- /dev/null +++ b/CHANGES/1337.feature.rst @@ -0,0 +1,2 @@ +Added a CI job to build wheels for iOS and Android on release-tag builds +-- by :user:`aiolibsbot`.