apidocs.yml
1 name: Generate and deploy API documentation 2 3 on: 4 release: 5 types: [published] 6 workflow_dispatch: 7 8 permissions: 9 contents: read 10 pages: write 11 id-token: write 12 13 # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 14 # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 15 concurrency: 16 group: "pages" 17 cancel-in-progress: false 18 19 jobs: 20 # Single deploy job since we're just deploying 21 deploy: 22 environment: 23 name: github-pages 24 url: ${{ steps.deployment.outputs.page_url }} 25 runs-on: ubuntu-latest 26 steps: 27 - name: Checkout 28 uses: actions/checkout@v6 29 - name: Install uv 30 uses: astral-sh/setup-uv@v7 31 with: 32 version: "0.9.26" 33 - name: "Set up Python" 34 uses: actions/setup-python@v6 35 with: 36 python-version-file: "pyproject.toml" 37 - name: Install Poe the Poet 38 run: uv tool install poethepoet 39 - run: uv sync 40 - run: poe generate-docs 41 - name: Setup Pages 42 uses: actions/configure-pages@v5.0.0 43 - name: Upload artifact 44 uses: actions/upload-pages-artifact@v3.0.1 45 with: 46 path: "docs/" 47 - name: Deploy to GitHub Pages 48 id: deployment 49 uses: actions/deploy-pages@v4.0.5