name: publish pypi on: push: tags: - 'v*' workflow_dispatch: jobs: setup_release: name: Create Release runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: gh release create "$GITHUB_REF_NAME" --generate-notes pypi-publish: name: Upload release to PyPI runs-on: ubuntu-latest needs: [setup_release] environment: name: pypi url: https://pypi.org/p/axolotl permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing steps: - name: Check out repository code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v4 with: version: "latest" - name: Install dependencies run: | uv pip install --system wheel packaging==23.2 uv pip install --system --no-build-isolation -e ".[dev]" - name: Extract tag name id: tag run: echo "TAG_NAME=$(echo "$GITHUB_REF" | cut -d / -f 3)" >> "$GITHUB_OUTPUT" - name: Build package run: | uv pip install --system build python -m build - name: Publish package distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1