diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml new file mode 100644 index 0000000..97f76b8 --- /dev/null +++ b/.github/workflows/build_wheels.yml @@ -0,0 +1,45 @@ +name: Build + +# on: [push, pull_request] +on: [release] + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + # macos-13 is an intel runner, macos-14 is apple silicon + os: [ubuntu-latest, macos-13, macos-14, windows-latest] + + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 # Adding for MSVC nmake + + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all + + - name: Build wheels + uses: pypa/cibuildwheel@v2.18.1 + env: + # Skip older python's to prevent things like: https://github.com/pypa/cibuildwheel/issues/1828 + CIBW_SKIP: cp36-* cp37-* cp38-* + + # Specify additional architectures using emulation + CIBW_ARCHS_LINUX: auto aarch64 + + # Run tests with pytest + CIBW_TEST_REQUIRES: pytest + CIBW_TEST_COMMAND: "pytest {project}/tests" + with: + package-dir: . + output-dir: wheelhouse + config-file: "{package}/pyproject.toml" + + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: ./wheelhouse/*.whl