name: Publish to PyPI on: release: types: [published] push: tags: - 'v*' jobs: build-wheels: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build abi3 wheel (GIL; CPython 3.11+) uses: PyO3/maturin-action@v1 with: target: x86_64 args: --release --out dist -m crates/justapi-py/Cargo.toml - name: Build free-threaded wheel (cp314t; no-GIL CPython 3.14) uses: PyO3/maturin-action@v1 with: target: x86_64 args: --release --out dist -m crates/justapi-py/Cargo.toml -i python3.14t - name: Upload wheels uses: actions/upload-artifact@v4 with: name: wheels path: dist publish: name: Publish to PyPI needs: [build-wheels] runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/p/justapi permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing contents: read steps: - name: Download wheels uses: actions/download-artifact@v4 with: name: wheels path: dist - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: dist