feat: rolling build performance baseline tracking#374
Conversation
Agent-Logs-Url: https://github.com/orionrobots/orionrobots.github.io/sessions/d9320145-ed2a-4c6f-9035-2525d72b971a Co-authored-by: dannystaple <426859+dannystaple@users.noreply.github.com>
🔨 Webpack Bundle Smoke Test
No baseline yet — will be recorded after the first successful push to master |
🏗️ Eleventy Site Build Smoke Test
No baseline yet — will be recorded after the first successful push to master |
There was a problem hiding this comment.
Pull request overview
Adds automated “rolling baseline” tracking so PR smoke-test comments can show build-time and output-size deltas vs recent master/main runs.
Changes:
- Emit raw numeric metrics from webpack/eleventy smoke tests (
*_ms,*_bytes) for machine-readable baseline capture. - Add baseline storage (
docs/build-baselines.json) plus helper/update scripts to compute rolling averages and append new samples. - Update PR smoke-test workflows to render delta columns, and add a post-merge workflow to refresh baselines automatically.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
tests/smoke/webpack.test.ts |
Adds raw numeric GitHub Actions outputs for build time and bundle size. |
tests/smoke/eleventy.test.ts |
Adds raw numeric GitHub Actions outputs for build time and site size. |
docs/build-baselines.json |
Introduces the rolling baseline data file and documentation for metrics/semantics. |
.github/workflows/on_push_update_baseline.yaml |
New workflow to update baselines after successful master/main runs. |
.github/workflows/on_pr_webpack_smoke.yaml |
PR comment now includes delta vs rolling baseline for webpack metrics. |
.github/workflows/on_pr_eleventy_smoke.yaml |
PR comment now includes delta vs rolling baseline for eleventy metrics. |
.github/scripts/update-baseline.js |
Appends/trims baseline entries and writes updated JSON to disk. |
.github/scripts/baseline-helpers.js |
Shared rolling-average and delta-cell formatting helpers for workflows. |
❌MegaLinter analysis: Error
Detailed Issues❌ C / cppcheck - 8 errors❌ CPP / cppcheck - 8 errors❌ REPOSITORY / grype - 2 errorsSee detailed reports in MegaLinter artifacts You could have the same capabilities but better runtime performances if you use a MegaLinter flavor:
Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining
|
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…seline fallback Agent-Logs-Url: https://github.com/orionrobots/orionrobots.github.io/sessions/de6e6aff-49e6-424d-8fd6-afb2a253a9f0 Co-authored-by: dannystaple <426859+dannystaple@users.noreply.github.com>

docs/build-baselines.json— stores last 4 baselines with detailed description for agents/maintainerstests/smoke/webpack.test.ts(build_time_ms,bundle_size_bytes)tests/smoke/eleventy.test.ts(build_time_ms,site_size_bytes).github/scripts/baseline-helpers.js— sharedrollingAvganddeltaCellhelpers.github/scripts/update-baseline.js— validates every required metric individually (not just a combined zero-check); preservesdescriptionfield when reading an existing baseline file; warns with metric names when any are missing.github/workflows/on_push_update_baseline.yaml— triggers after successful master build, runs both smoke tests, updates baseline, commits with[skip ci]on_pr_webpack_smoke.yaml— delta column vs rolling average, colour-coded thresholdson_pr_eleventy_smoke.yaml— same delta display for Eleventy metricsOriginal prompt