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 (non-blocking — repo has known type debt) continue-on-error: true run: npm run typecheck - name: Build run: npm run build - name: Tracking check (non-blocking) continue-on-error: true run: npm run tracking:check - name: Image budget (non-blocking) continue-on-error: true 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