name: Publish CLI on: push: tags: - 'cli/v*' permissions: contents: read id-token: write attestations: write artifact-metadata: write jobs: release-preflight: uses: ./.github/workflows/release-preflight.yml publish-pypi: needs: release-preflight if: startsWith(github.ref, 'refs/tags/cli/v') runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: '3.10' - name: Install uv uses: astral-sh/setup-uv@v7 with: version: "latest" - name: Install dependencies working-directory: cli run: | uv sync --frozen - name: Run lint working-directory: cli run: | uv run ruff check - name: Run type checks working-directory: cli run: | uv run pyright - name: Run tests working-directory: cli run: | uv run pytest - name: Build package working-directory: cli run: | uv build - name: Attest built package if: startsWith(github.ref, 'refs/tags/cli/v') uses: actions/attest@v4 with: subject-path: cli/dist/* - name: Publish to PyPI working-directory: cli env: UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }} run: | uv publish