ci: gate the homepage on lighthouse budgets #24

Merged
me merged 2 commits from ci/lighthouse into main 2026-08-30 04:12:13 +00:00
Owner

Adds Lighthouse CI as a PR gate, alongside the existing perf/homepage-loop.mjs.
The two do different jobs: the loop asserts exact gzipped byte budgets under
pinned throttling, Lighthouse covers the audits and the score.

dist is served by perf/serve-dist.mjs — the loop's static server, extracted
so both tools measure the same bytes Caddy sends. Three runs, median asserted.

Budgets in lighthouserc.json, calibrated locally (score 90–92, FCP 2.2s,
LCP 3.1s, TBT 110ms, CLS 0) with headroom for a slower runner:

assertion budget
performance score ≥ 0.85
CLS ≤ 0.05
TBT ≤ 500ms
FCP ≤ 3000ms
LCP ≤ 4200ms

modern-image-formats, uses-responsive-images, unused-javascript and
render-blocking-resources are warnings — visible, not blocking.

Reports upload as an artifact. The job runs on pull requests only, matching e2e.

Also drops a stale comment in ci.yml claiming build:ci skips a prerender
step; prerendering was removed in 6a569e2 and build:ci is now identical to
build.

Adds Lighthouse CI as a PR gate, alongside the existing `perf/homepage-loop.mjs`. The two do different jobs: the loop asserts exact gzipped byte budgets under pinned throttling, Lighthouse covers the audits and the score. `dist` is served by `perf/serve-dist.mjs` — the loop's static server, extracted so both tools measure the same bytes Caddy sends. Three runs, median asserted. Budgets in `lighthouserc.json`, calibrated locally (score 90–92, FCP 2.2s, LCP 3.1s, TBT 110ms, CLS 0) with headroom for a slower runner: | assertion | budget | |---|---| | performance score | ≥ 0.85 | | CLS | ≤ 0.05 | | TBT | ≤ 500ms | | FCP | ≤ 3000ms | | LCP | ≤ 4200ms | `modern-image-formats`, `uses-responsive-images`, `unused-javascript` and `render-blocking-resources` are warnings — visible, not blocking. Reports upload as an artifact. The job runs on pull requests only, matching e2e. Also drops a stale comment in `ci.yml` claiming `build:ci` skips a prerender step; prerendering was removed in 6a569e2 and `build:ci` is now identical to `build`.
ci: gate the homepage on lighthouse budgets
Some checks failed
CI / Frontend CI (pull_request) Failing after 48s
CI / Lighthouse (pull_request) Successful in 2m22s
CI / Backend CI (pull_request) Successful in 54s
CI / E2E Tests (pull_request) Has been cancelled
d4461b7849
ci: pin lighthouse-ci in the lockfile
Some checks failed
CI / Frontend CI (pull_request) Failing after 56s
CI / Lighthouse (pull_request) Successful in 2m42s
CI / Backend CI (pull_request) Successful in 51s
CI / E2E Tests (pull_request) Has been cancelled
72a7569a79
me force-pushed ci/lighthouse from 72a7569a79
Some checks failed
CI / Frontend CI (pull_request) Failing after 56s
CI / Lighthouse (pull_request) Successful in 2m42s
CI / Backend CI (pull_request) Successful in 51s
CI / E2E Tests (pull_request) Has been cancelled
to c6dc86bafc
All checks were successful
CI / Frontend CI (pull_request) Successful in 57s
CI / Lighthouse (pull_request) Successful in 2m43s
CI / Backend CI (pull_request) Successful in 51s
CI / E2E Tests (pull_request) Successful in 6m11s
2026-08-30 03:57:03 +00:00
Compare
me merged commit 5279350632 into main 2026-08-30 04:12:13 +00:00
me deleted branch ci/lighthouse 2026-08-30 04:12:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
me/pi-ku!24
No description provided.