Production Smoke #745
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: Production Smoke | |
| on: | |
| schedule: | |
| - cron: "0 * * * *" # every hour at :00 | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| # One run at a time — if a scheduled run is already in progress, the next | |
| # trigger waits rather than cancelling the active check. | |
| concurrency: | |
| group: production-smoke | |
| cancel-in-progress: false | |
| jobs: | |
| smoke: | |
| name: Smoke checks | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 | |
| with: | |
| version: "10.28.0" | |
| - name: Set up Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: "22.14.0" | |
| # The smoke script uses only Node.js built-ins (fetch, AbortSignal). | |
| # No pnpm install step is required — pnpm run delegates to node directly. | |
| - name: Run production smoke checks | |
| id: smoke | |
| run: pnpm smoke:production | |
| - name: Write job summary | |
| if: always() | |
| run: | | |
| OUTCOME="${{ steps.smoke.outcome }}" | |
| TIMESTAMP="$(date -u +'%Y-%m-%d %H:%M UTC')" | |
| { | |
| echo "## Production Smoke — ${TIMESTAMP}" | |
| if [ "${OUTCOME}" = "success" ]; then | |
| echo "**Result: PASS**" | |
| else | |
| echo "**Result: FAIL** — see run log for details" | |
| fi | |
| echo "" | |
| echo "Checks: public pages, fixture availability, end-to-end validation" | |
| } >> "$GITHUB_STEP_SUMMARY" |