Files
astro-website/site/docs/lighthouse.md
2026-02-10 22:37:29 -05:00

52 lines
1.7 KiB
Markdown

# Lighthouse Quality Gate
This project provides a deterministic Lighthouse runner for the required variants:
- mobile + `light`
- mobile + `dark`
- mobile + `high-contrast`
- desktop + `light`
- desktop + `dark`
- desktop + `high-contrast`
## Commands
- `npm run lighthouse:run`
- runs Lighthouse and writes JSON reports to `site/lighthouse-reports/`
- `npm run verify:lighthouse`
- same as above, but fails if any median category score is below 100
## Run Environment Requirements
- Use a clean Chrome environment (no extensions).
- Default target URL is `http://127.0.0.1:4321/`.
- The runner starts `astro preview` automatically for local URLs.
- To run against production explicitly, pass `--url=https://santhoshj.com/`.
## Scoring Rule
- The runner executes 3 runs per variant by default.
- For each category (`performance`, `accessibility`, `best-practices`, `seo`), it records per-run scores.
- The quality gate uses the median score for each category per variant.
- `verify:lighthouse` requires all medians to equal `100`.
## Gate Scope (Deterministic By Design)
- The default gate target is the home page (`/`).
- The home page shell is the deterministic quality gate surface and is expected to avoid third-party above-the-fold image dependencies.
- If additional URLs are added to the gate, they should follow the same deterministic rule for above-the-fold media.
## Useful Options
- `--url=<url>`: target URL
- `--runs=<n>`: run count per variant
- `--out=<path>`: report output directory
- `--assert-100`: enable gate failure when any median is below 100
Environment variable equivalents:
- `LIGHTHOUSE_TARGET_URL`
- `LIGHTHOUSE_RUNS`
- `LIGHTHOUSE_OUTPUT_DIR`
- `LIGHTHOUSE_SKIP_PREVIEW=true` (skip auto-starting preview)