name: Python Publish (pypi) on: release: types: [created] push: branches: [main] env: PYTHON_VERSION: "3.12" jobs: publish: name: Upload release to PyPI if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest environment: name: pypi permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing steps: - uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install uv uses: astral-sh/setup-uv@v6 - name: Install dependencies shell: bash run: uv sync --all-packages - name: Export Publication Version run: echo "version=$(uv version --short)" >> $GITHUB_OUTPUT - name: Build Distributable shell: bash run: uv run poe build - name: Publish package distributions to PyPI run: uv publish