GitHub delivery evidence
Build and verify the change with GitHub context alongside it.
Push results from any runner. Every test keeps a stable identity across runs, and three independent flakiness detectors tell a real failure from noise. The red build stops being a coin toss.
One connected loop, held on the stage this capability serves. The other stages stay as context so you can see what feeds in and what comes next.
Build and verify the change.
Build and verify the change with GitHub context alongside it.
Inspect delivery workflow activity in the connected release workspace.
Investigate test outcomes and flakiness evidence across runs.
Keep API contracts inspectable next to the release that changed them.
Compare public cloud compute pricing as planning evidence.
Reporting, not a runner
lube reads what your CI already produces — it never runs, gates, quarantines, or retries a test. Keep your runner exactly as it is. Raw per-test rows live for 7 days while daily and monthly rollups persist, so the history you look back on stays cheap and fast. No CI gating, no coverage ingestion.
8
report formats ingested, auto-detected from the file
3
independent flakiness detectors, each with its own rule
4
rollup tables keep history cheap past raw retention
7d · 90d · 365d
raw / daily / monthly retention, pruned independently
Watch one test flap between pass and fail while everything around it stays green. That non-determinism is exactly what the three flakiness detectors catch.
latest run · per test
history → latestRerun, alternation, and windowed instability each catch a different shape of flake — so a test that only passes on retry and one that flips between runs are both caught, and neither is a heuristic you have to trust blind.
A test that only went green after CI retried it — passed despite retry_count > 0.
Status flips between consecutive runs on the same branch, never a clean pass or fail.
A 7-day pass rate stuck strictly between 5% and 95% — never reliably green, never reliably red.
A per-day pass-rate trend built from the run-daily rollup, toned on the same 95% / 80% thresholds the dashboard uses — so a slow slide into a bad week is obvious before anyone files a ticket.
pass rate · per day
96%A run detail sorts every test into flaky, failing now, unstable, or stable, then shows each test's identity-history sparkline — because a stable identity across runs is what makes a green-red-green streak legible at a glance.
3
flaky
2
failing now
4
unstable
214
stable
Every suite's duration fills to scale as the run is measured, and the slowest one is flagged so the bottleneck is obvious.
suite duration
4m 12sThe tests dragging CI, sorted by their p95 duration across recent runs, so the expensive few are separated from the fast many.
A test that passed yesterday but failed today opens one entry per test-day and stays open until it passes again, so new breakage is separated from old noise.
The uploader auto-detects the file and format, captures your CI context, and the server keys every result to a stable identity. Then you slice the run any way you read it.
Report formats
Auto-detected from the filename; override with --format.
CI providers
Detected from the environment; falls back to local.
Captured per run
Attached from the CI context, no config.
Filter & group
On the run detail.
Classification
Per test, per run.
Retention windows
Pruned independently.
Every claim on this page is a shipped surface. Here is the machinery it runs on.
Still just a reporting layer
lube never blocks a merge, quarantines a test, or triggers a retry — those decisions stay in your CI. It ingests what your runner emits and turns it into evidence you can read beside the commit. That is the whole job.
Push one report from your CI and start.