fix(release): repair the release pipeline and sign released artifacts #2050
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
| name: Documentation | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'docs/**' | |
| - 'dev-tools/docs/**' | |
| - 'src/**/cli/**' | |
| - 'README.md' | |
| - '*.md' | |
| - 'pyproject.toml' | |
| - '.github/workflows/docs.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'docs/**' | |
| - 'dev-tools/docs/**' | |
| - 'src/**/cli/**' | |
| - 'README.md' | |
| - '*.md' | |
| - 'pyproject.toml' | |
| - '.github/workflows/docs.yml' | |
| # workflow_dispatch: allows triggering docs builds manually from the Actions UI | |
| workflow_dispatch: | |
| # NOTE: workflow_run trigger removed. It fired after "Quality Checks" and | |
| # "Unit Tests" completed, causing docs to build twice on every main push | |
| # (once from push: and once from workflow_run:). The push: trigger is | |
| # sufficient — it runs immediately and is path-scoped to docs-relevant files. | |
| permissions: | |
| contents: write # mike pushes to gh-pages branch | |
| pages: write | |
| concurrency: | |
| group: "pages" | |
| cancel-in-progress: false | |
| jobs: | |
| config: | |
| name: Get Configuration | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| outputs: | |
| default-python-version: ${{ steps.config.outputs.default-python-version }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Get project configuration | |
| id: config | |
| uses: ./.github/actions/get-config | |
| setup-cache: | |
| name: Setup Cache | |
| needs: config | |
| uses: ./.github/workflows/cache-management.yml | |
| with: | |
| cache-type: dependencies | |
| cache-key-base: deps | |
| python-version: ${{ needs.config.outputs.default-python-version }} | |
| build: | |
| needs: [config, setup-cache] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Python and UV | |
| uses: ./.github/actions/setup-uv-cached | |
| with: | |
| cache-key: ${{ needs.setup-cache.outputs.cache-key }} | |
| fail-on-cache-miss: false | |
| - name: Build documentation | |
| run: | | |
| if [ "${{ github.ref }}" = "refs/heads/main" ]; then | |
| # Deploy dev alias via mike, export docs/site for Pages upload. | |
| bash dev-tools/docs/mike_deploy.sh dev --push | |
| else | |
| # PR path: strict build validation only — no versioning, no push. | |
| make ci-docs-build | |
| fi | |
| - name: Upload Pages artifact | |
| if: github.ref == 'refs/heads/main' | |
| uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5 | |
| with: | |
| path: docs/site | |
| deploy: | |
| if: github.ref == 'refs/heads/main' | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| needs: build | |
| permissions: | |
| pages: write | |
| id-token: write | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5 | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Smoke-check deployed site | |
| run: bash dev-tools/docs/smoke_check_pages.sh "${{ steps.deployment.outputs.page_url }}" |