name: Publish to PyPI on: release: types: [published] workflow_dispatch: jobs: publish: runs-on: ubuntu-latest environment: pypi permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing steps: - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - name: Install dependencies run: uv sync --all-extras --locked - name: Run full test suite run: uv run --locked pytest tests/ --cov=jyotishganit - name: Build package run: uv run --locked python -m build - name: Check package run: uv run --locked twine check dist/* - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1