name: Publish on: push: tags: - py-* jobs: build: strategy: matrix: include: - os: ubuntu-latest target: x86_64 python: "3.9" - os: ubuntu-latest target: x86_64 python: "3.10" - os: ubuntu-latest target: x86_64 python: "3.11" - os: ubuntu-latest target: x86_64 python: "3.12" - os: windows-latest target: x64 python: "3.9" - os: windows-latest target: x64 python: "3.10" - os: windows-latest target: x64 python: "3.11" - os: windows-latest target: x64 python: "3.12" - os: macos-latest target: aarch64 python: "3.9" - os: macos-latest target: aarch64 python: "3.10" - os: macos-latest target: aarch64 python: "3.11" - os: macos-latest target: aarch64 python: "3.12" - os: macos-latest target: x64 python: "3.9" - os: macos-latest target: x64 python: "3.10" - os: macos-latest target: x64 python: "3.11" - os: macos-latest target: x64 python: "3.12" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Build wheels uses: PyO3/maturin-action@v1 with: working-directory: instant-distance-py target: ${{ matrix.target }} args: --release --out ../dist --find-interpreter sccache: 'true' manylinux: auto - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist release: environment: "Publish wheels" name: Release runs-on: ubuntu-latest needs: [build] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} with: command: upload args: --non-interactive --skip-existing *