Skip to content

Mark native-backed tasks on card, sidebar and breadcrumb (#1233) #51

Mark native-backed tasks on card, sidebar and breadcrumb (#1233)

Mark native-backed tasks on card, sidebar and breadcrumb (#1233) #51

Workflow file for this run

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