CI: Lighthouse performance report (advisory, non-blocking) - #70
Merged
Conversation
added 2 commits
September 11, 2026 19:30
Weekly scheduled + workflow_dispatch job that builds the site, serves output/ locally, and runs Lighthouse CI against the homepage and a representative article. All lighthouserc.json assertions are at warn level and the job is continue-on-error, so budget misses surface as a tracking issue (mirroring link-rot.yml) and a job summary rather than blocking any merge. LH scores are noisy on shared runners, so this is a health report, never a merge gate.
…ssue title Critic follow-ups: avoid uploading each report to Google's public temporary storage (use filesystem/.lighthouseci), and title the tracking issue neutrally so a runner Chrome-launch failure is not mislabeled as a budget warning.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a scheduled, advisory Lighthouse CI performance report. Two new files, no existing workflows or content touched:
.github/workflows/lighthouse.yml- weekly (cron: '17 6 * * 3', Wednesdays 06:17 UTC, offset from the other crons) +workflow_dispatch. Builds the site the same waydeploy.yml/a11y-check.ymldo (pip install --require-hashes --no-deps -r requirements.txt, thenpelican content -o output -s publishconf.py), servesoutput/withhttp-serveron :8080, and runs@lhci/cli autorun.lighthouserc.json- collects the homepage and a representative article (/cryptominer-in-the-docker-layer.html), 3 runs, desktop preset. All assertions are at warn level (categories:*plus generous LCP/CLS/TBT budgets), so normal runs pass.Why it is NOT a merge gate
Lighthouse scores are noisy on shared GitHub-hosted runners - variable CPU throttling and cold caches routinely swing performance and TBT numbers run to run. Gating merges on that would produce flaky red checks that block unrelated content PRs. So this is deliberately a report, not a gate:
warn, solhciexits 0 even on a budget miss.lhcistep iscontinue-on-error: true(belt-and-suspenders against Chrome launch flakiness).lighthouse), mirroring the single-issue pattern inlink-rot.yml. It never fails the run.Validation
python3 -c "import json; json.load(open('lighthouserc.json'))"-> OK; YAML parsed OK (ruby).