perf(daemon): add CI workflow for sync bench comparison#398
perf(daemon): add CI workflow for sync bench comparison#398andreabadesso wants to merge 1 commit intofeat/daemon-bench-comparatorfrom
Conversation
Third piece of the benchmarking infrastructure. On PRs that touch packages/daemon, runs the bench against both master and the PR branch in parallel, then posts (or updates) a sticky PR comment with the comparator output. Key design choices (rationale in #396 review thread): - Matrix strategy — two runners in parallel, each with its own MySQL + simulator containers, no cross-run state bleed. - Bench scripts from PR head are overlaid onto the baseline checkout (via refs/pull/N/head so fork PRs work too) so the measurement tool stays constant across the comparison and baseline works even before the harness has landed on master. - No exit gating. continue-on-error on every bench step — CI runner variance is too high for a hard threshold to mean anything at the run counts we can afford. - Report also emitted to the job summary, so fork PRs (where GITHUB_TOKEN is read-only) still surface results. - concurrency.cancel-in-progress: true to avoid stacking stale runs when a PR is pushed to repeatedly. - Starts at 5 runs × 1 warmup per side; dial up once the scenario grows past its current 66-event ceiling. Also adds a warning comment at the top of bench-sync.ts flagging the overlay constraint: any symbol this script references must also exist on master. Depends on #396 (harness) and #397 (comparator). Targets #397 so the three PRs can be reviewed as a stack. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
�[94m➤�[39m YN0000: · Yarn 4.7.0 Sync benchmark comparisonScenario:
🟢/🔴 mean the 95% CI is fully on one side of 0. ⚪ means the CI crosses 0 — the difference is indistinguishable from noise at this run count. This report is informational only; CI runner variance makes hard gates unreliable at the run counts we can afford in CI. |
Motivation
Third and final piece of the sync-benchmarking infrastructure (follows #396 and #397). On every PR that touches
packages/daemon, this workflow runs the bench against both master and the PR branch in parallel, then posts a sticky PR comment with the comparator output.Informational only. No exit gating, no red X. CI runner variance is too high for a hard threshold to be useful at the run counts we can afford.
Stacked on #397 — targets
feat/daemon-bench-comparator. When the stack merges, the final result is the full comparator + workflow + harness landing on master together.Architecture
refs/pull/N/head(works for same-repo and fork PRs), so the measurement tool stays constant and baseline works before the harness has landed on masterGITHUB_TOKENis read-only andgh pr commentwould 403) still surface results<!-- daemon-bench-report -->markerconcurrency.cancel-in-progress: true— pushing new commits cancels in-flight bench runsAcceptance Criteria
packages/daemon/**, thedaemon-benchworkflow runsKnown constraints
bench-sync.tsnoting that any symbol it references must also exist on master. If a future PR renames a span or removes a service export, the workflow needs a matching update.Checklist
master, confirm this code is production-ready and can be included in future releases as soon as it gets merged🤖 Generated with Claude Code