name: Build Wheels on: push: branches: [main] create: jobs: build_wheels: strategy: matrix: os: [ubuntu-20.04, windows-2022, macos-10.15] runs-on: ${{ matrix.os }} name: Build wheels on ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU if: runner.os == 'Linux' uses: docker/setup-qemu-action@v1 with: platforms: arm64 - name: Set up Python 3.9 uses: actions/setup-python@v3 with: python-version: 3.9 cache: "pip" - name: Prepare shell: bash run: | pip install -r requirements.txt make cython - name: Build uses: pypa/cibuildwheel@v2.6.0 env: CIBW_TEST_REQUIRES: "pytest" CIBW_TEST_COMMAND: "pytest {package}/test" CIBW_ARCHS_LINUX: auto aarch64 CIBW_ARCHS_MACOS: x86_64 universal2 arm64 CIBW_SKIP: pp* - name: Upload Wheels to artifact uses: actions/upload-artifact@v1 with: name: Wheels path: wheelhouse - name: Publish Wheels to TestPyPI if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1 with: packages_dir: wheelhouse password: ${{ secrets.PYPI_API_TOKEN }}