name: Publish on: [push, pull_request, workflow_call] permissions: contents: read jobs: pytest: runs-on: ${{ matrix.os }} strategy: matrix: python-version: [ "3.10", "3.12" ] os: [ ubuntu-latest, windows-latest, macOS-latest ] steps: - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install run: pip install .[test] - name: Test with pytest run: pytest sdist: needs: [ pytest ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist - name: Upload sdist uses: actions/upload-artifact@v6 with: name: wheels-sdist path: dist release: name: Release runs-on: ubuntu-latest needs: [ sdist ] steps: - uses: actions/download-artifact@v7 - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1