Mark native-backed tasks on card, sidebar and breadcrumb (#1233) #51
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: Deploy landing page | |
| # Replaces GitHub's auto-generated "pages build and deployment" (legacy | |
| # "Deploy from a branch") workflow, which fired on EVERY push to main and, | |
| # on parallel PR merges, raced the Pages API — the superseded run died with | |
| # "Deployment failed, try again later." and emailed a false "Run failed". | |
| # | |
| # Design goal: NEVER email a false "Run failed" for the landing page again. | |
| # 1. path filter — only run when docs/** (or this file) actually changes. | |
| # 2. concurrency — serialize deploys so runs never race the Pages API. | |
| # 3. in-job retry — the Pages backend still returns transient | |
| # "Deployment failed, try again later." on a single deploy with no | |
| # concurrent run (a GitHub-side hiccup). Retry once in-job so it | |
| # self-heals — no manual "Re-run" needed (a manual re-run re-uploads | |
| # the artifact and then dies with "Multiple artifacts named github-pages"). | |
| # 4. never fail — if both attempts hit a transient backend error the job | |
| # stays green and only emits a ::warning:: (visible in the Actions UI, no | |
| # email). The site keeps serving the previous version and the next docs | |
| # change redeploys. A landing page is not worth a false failure alert. | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "docs/**" | |
| - ".github/workflows/pages.yml" | |
| workflow_dispatch: | |
| # Only one Pages deployment at a time. Queue (don't cancel) so an in-flight | |
| # production deploy always completes; the queued run then deploys the latest. | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deploy.outputs.page_url || steps.deploy_retry.outputs.page_url }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Configure Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Upload docs/ as Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: docs | |
| - name: Deploy to GitHub Pages | |
| id: deploy | |
| uses: actions/deploy-pages@v4 | |
| continue-on-error: true | |
| - name: Cool down before retry | |
| if: steps.deploy.outcome == 'failure' | |
| run: sleep 60 | |
| - name: Deploy to GitHub Pages (retry) | |
| id: deploy_retry | |
| if: steps.deploy.outcome == 'failure' | |
| uses: actions/deploy-pages@v4 | |
| continue-on-error: true | |
| - name: Summarize deploy result | |
| run: | | |
| if [ "${{ steps.deploy.outcome }}" = "success" ] || [ "${{ steps.deploy_retry.outcome }}" = "success" ]; then | |
| echo "Pages deploy succeeded." | |
| else | |
| echo "::warning title=Pages deploy skipped::GitHub Pages returned a transient backend error on both attempts. The site keeps serving the previous version and the next docs change will redeploy. The workflow is kept green on purpose to avoid false 'Run failed' emails." | |
| fi |