ci: add benchmark comparison job for PR regression detection#21082
ci: add benchmark comparison job for PR regression detection#21082lvalerom wants to merge 10 commits into
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
|
Skipping CI for Draft Pull Request. |
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Enterprise 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 |
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
🚀 Build Images ReadyImages are ready for commit b3bf259. To use with deploy scripts: export MAIN_IMAGE_TAG=4.12.x-161-gb3bf259bb5 |
Co-Authored-By: Claude <noreply@anthropic.com>
Benchmark Comparison |
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Description
Adds a CI job that automatically compares Go benchmark results between a PR and its base branch. When a PR touches packages that contain benchmarks, the job runs them on both refs using git worktrees, compares with
benchstat, and posts results as a PR comment.scripts/bench-compare.sh— local script that detects changed packages, runs benchmarks on both refs, compares with benchstatgo-bench-comparejob inunit-tests.yaml— CI wrapper that calls the script and posts resultsThe job is non-blocking (
continue-on-error: true) and only runs on PRs.User-facing documentation
Testing and quality
Automated testing
How I validated my change
Tested the script locally by introducing an artificial regression (adding a mutex to
ValueStream.Push) and runningscripts/bench-compare.sh. The script correctly detected the regression withbenchstatshowing+78.82% (p=0.008)onBenchmarkValueStreamWrite.