Skip to content

[B4] ci(bench): run benchmarks on pull_request + push results to Bencher for trend tracking #873

Description

@MichaelFisher1997

Part of #834 (Production-Readiness Audit) — Batch B4 (make bench/visual actually fail, parallel-safe).
Replaces audit items #3 + #19 (merged because both touch benchmark.yml). Parallel with: audit-b4 siblings — this issue owns benchmark.yml.

Problem

Two related gaps sharing one file, so they ship as one PR:

  1. feat: voxel engine with worldgen, async streaming, and render stability #3 — bench doesn't run on PRs. benchmark.yml triggers on push: dev + workflow_dispatch only. Performance regressions land on dev and are detected after merge, when bisecting is harder.
  2. 🔍 Conduct Comprehensive Code Audit - Architecture, Performance, SOLID, and Quality Standards #19 — no historical trend store. Each benchmark run overwrites the last. There's no Bencher / Conbench history, so month-over-month drift is invisible.

Acceptance criteria

  • pull_request: trigger added to .github/workflows/benchmark.yml, gated by a path filter (src/**, modules/**, assets/shaders/**, build.zig) or a run-benchmark label to control cost. Document the chosen gate.
  • Benchmark results pushed to Bencher (or equivalent OSS trend store) for historical tracking.
  • Bencher project + API token configured (repo secret).
  • Trend dashboard link posted as a PR comment on benchmark-triggered runs.
  • Nightly scheduled run also pushed to Bencher for stable long-term baseline.

Files in scope

  • .github/workflows/benchmark.yml
  • Bencher config (bencher.yml or similar) if needed

Dependencies

Out of scope

Branch / PR

  • Branch: ci/bench-pr-trigger-bencher · Targets: dev

Metadata

Metadata

Labels

audit-b4Audit Batch 4: Make bench/visual actually fail (needs B1)cidocumentationImprovements or additions to documentationhotfixproduction-readinessAudit findings: missing CI/lint/benchmark/regression guardrails for production-grade engine

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions