observability(ci-ops): Tier-2 DORA dashboard — the four metrics + CI … #65
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Build the MkDocs site and publish to GitHub Pages. | |
| # | |
| # One-time setup (already done): Repo Settings → Pages → Source = "GitHub Actions". | |
| # | |
| # Trigger model: | |
| # - push to main → build + deploy | |
| # - pull_request → build only (strict), so PR CI catches broken refs | |
| # before they reach main | |
| # - workflow_dispatch → manual rebuild | |
| # | |
| # Strict build (mkdocs build --strict) fails on unresolved cross-references — | |
| # matches AGENTS.md #26. | |
| name: docs | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'docs/**' | |
| - 'mkdocs.yml' | |
| - 'requirements-docs.txt' | |
| - '.github/workflows/docs.yml' | |
| - 'Makefile' | |
| pull_request: | |
| paths: | |
| - 'docs/**' | |
| - 'mkdocs.yml' | |
| - 'requirements-docs.txt' | |
| - '.github/workflows/docs.yml' | |
| - 'Makefile' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| # Allow one in-flight deploy at a time; cancel queued runs so we ship latest. | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| name: Build (strict) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| cache-dependency-path: requirements-docs.txt | |
| - name: Install docs deps | |
| run: pip install -r requirements-docs.txt | |
| - name: Build site (strict) | |
| run: mkdocs build --strict --clean | |
| - name: Configure Pages | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| uses: actions/configure-pages@v5 | |
| - name: Upload Pages artifact | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: site | |
| deploy: | |
| name: Deploy to GitHub Pages | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |