Continuous benchmarking and performance-regression tracking.
cubit runs your benchmarks, records baselines in a git branch, and reports how
a change moves performance — locally for a developer, or as a non-blocking PR
comment in CI. It is a light gate: the numbers and the trend dashboard inform
a human go/no-go, nothing hard-fails.
Sibling to bulwark (code-quality scanning), built for the wardnet daemon's benchmarks.
- Your CI runs the benchmarks (today: Rust criterion).
cubit compareingests the output, diffs it against the baseline recorded on thecubit-statebranch, and posts a Markdown table (baseline vs current, Δ%) plus a link to a trend dashboard. Larger suites are folded into collapsible sections by benchmark group (criterion'sgroup/function/valueprefix), so the comment and dashboard stay readable as the suite grows — sections holding a regression open by default.- On the default branch,
cubit recordupdates the baseline — keyed by commit SHA — for the next PR to compare against.
Baselines and history live in an orphan git branch (no database, no hosted
service). The PR comment links straight to the run's dashboard: set the
action's pages-branch input to publish it to the repo's own GitHub Pages, or
point pages-repo (plus a pages-token secret) at a central hub repo — e.g.
wardnet/perf-reports — that hosts dashboards for many repos under
<repo>/pr-<number>/. With neither configured, the comment links the report
artifact directly. The report is also mirrored to the job summary on the run
page, and cubit serve renders the dashboard locally — so everything still
works on private repos and repos whose GitHub Pages slot is already taken.
| Command | Purpose |
|---|---|
cubit compare |
Ingest a run, diff against a baseline, render the report |
cubit record |
Ingest a run and write it as a baseline record (SHA-keyed) |
cubit update |
Self-update to the latest release |
cubit version |
Print the version |
curl -fsSL https://github.com/wardnet/cubit/releases/latest/download/install.sh | shcubit update self-updates the CLI in place.
Early. The ingest → compare → report spine works; baseline persistence
(cubit-state branch), the release/action plumbing, and the React trend
dashboard are in progress.
MIT — see LICENSE.
