name: wheels on: [push, pull_request] jobs: wheels: runs-on: ${{ matrix.platform.os }} strategy: fail-fast: true matrix: platform: [ {os: "ubuntu-latest", target: "manylinux_x86_64", arch: "x86_64"}, {os: "ubuntu-latest", target: "manylinux_aarch64", arch: "aarch64"}, {os: "macos-14", target: "macosx_arm64", arch: "arm64"} ] python: [ {cp: "cp311", py: "3.11"}, {cp: "cp312", py: "3.12"} ] steps: - uses: actions/checkout@v4 - name: Set up QEMU if: runner.os == 'Linux' uses: docker/setup-qemu-action@v3 with: platforms: all - name: Building wheel uses: pypa/cibuildwheel@v2.19.2 env: CIBW_BUILD: "${{ matrix.python.cp }}-${{ matrix.platform.target }}" CIBW_ARCHS: "${{ matrix.platform.arch }}" CIBW_BEFORE_ALL_LINUX: "bash {project}/scripts/manylinux_dependencies.sh" CIBW_BEFORE_BUILD_MACOS: "bash {project}/scripts/macos_dependencies.sh" CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28" CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux_2_28" MACOSX_DEPLOYMENT_TARGET: "14.0" - uses: actions/setup-python@v5 if: ${{ matrix.platform.arch != 'aarch64' }} with: python-version: ${{ matrix.python.py }} - name: Installing the wheel if: ${{ matrix.platform.arch != 'aarch64' }} run: | pip install --break-system-packages ./wheelhouse/*.whl - name: Saving wheel uses: actions/upload-artifact@v4 with: name: cibw-wheels-${{ matrix.platform.target }}-${{ matrix.python.cp }} path: ./wheelhouse/*.whl