8367393813
* ci: enforce typecheck and add quality gates Remove continue-on-error on the Typecheck step: astro check currently reports 0 errors / 13 hints, so the step can block. Also run tracking:check and image:budget after the build so these quality gates actually fail CI when broken (they are defined in package.json but were never wired into the workflow). * chore: remove obsolete Tower deploy workflow The 'Deploy to Tower' workflow built the Astro Node adapter and scp'd it to Tower to run as a container on port 4321. Production has been served by Cloudflare since PR #5, so this pipeline only ever fails (Tower SSH secrets are stale and the target host is not the live origin). Removing it eliminates noisy red runs. * chore: monthly report tracks live required checks The report hardcoded a probe for 'Cross-stack coherence', which is no longer a required status check on main. Dump the live set from required_status_checks.contexts[] and .checks[].context instead, so the monthly report reflects whatever branch protection is configured at that point rather than a stale name.
44 lines
934 B
YAML
44 lines
934 B
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
|
|
- name: Install
|
|
run: npm ci
|
|
|
|
- name: Typecheck
|
|
run: npm run typecheck
|
|
|
|
- name: Build
|
|
run: npm run build
|
|
|
|
- name: Tracking check
|
|
run: npm run tracking:check
|
|
|
|
- name: Image budget
|
|
run: npm run image:budget
|
|
|
|
- name: Notify ntfy on failure
|
|
if: failure()
|
|
run: |
|
|
curl -s -d "CI FAILED on ${{ github.ref_name }} @ $(date '+%H:%M') — ${{ github.sha }}" \
|
|
-H "Title: ER github.io CI Failed" \
|
|
-H "Priority: high" \
|
|
-H "Tags: rotating_light" \
|
|
https://ntfy.saillant.cc/ops-alerts 2>/dev/null || true
|