Skip to content

wardnet/cubit

Repository files navigation

cubit

cubit

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.

How it works

  1. Your CI runs the benchmarks (today: Rust criterion).
  2. cubit compare ingests the output, diffs it against the baseline recorded on the cubit-state branch, 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's group/function/value prefix), so the comment and dashboard stay readable as the suite grows — sections holding a regression open by default.
  3. On the default branch, cubit record updates 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.

Commands

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

Install

curl -fsSL https://github.com/wardnet/cubit/releases/latest/download/install.sh | sh

cubit update self-updates the CLI in place.

Status

Early. The ingest → compare → report spine works; baseline persistence (cubit-state branch), the release/action plumbing, and the React trend dashboard are in progress.

License

MIT — see LICENSE.

About

Continuous benchmarking and performance-regression tracking. Runs benchmarks, records baselines in a git branch, renders trend dashboards, and posts non-blocking baseline-vs-PR comparisons.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors