name: Build wheels on: push jobs: build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Build manylinux2014 x86-64 wheels uses: earwig/python-wheels-manylinux-build@latest-manylinux2014_x86_64 with: python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312' - name: Build manylinux 2014 aarch64 wheels uses: earwig/python-wheels-manylinux-build@latest-manylinux2014_aarch64 with: python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312' - uses: actions/upload-artifact@v3 with: name: wheels path: dist/*.whl - name: Publish package to PyPI # Only actually publish if a new tag was pushed if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@37e305e7413032d8422456179fee28fac7d25187 with: user: __token__ password: ${{ secrets.pypi_password }} build-macos: runs-on: macos-latest strategy: matrix: python-version: - '3.8' - '3.9' - '3.10' - '3.11' - '3.12' steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Build wheels run: | python -m pip install --upgrade pip wheel setuptools pip wheel . -w dist/ ls dist/ - uses: actions/upload-artifact@v3 with: name: wheels path: dist/*.whl - name: Publish package to PyPI # Only actually publish if a new tag was pushed if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') # We can't use the pypa action because of https://github.com/pypa/gh-action-pypi-publish/issues/15 run: | pip install twine TWINE_USERNAME="__token__" \ TWINE_PASSWORD="${{ secrets.pypi_password }}" \ twine upload dist/*