Add stress benchmark CI workflow - #3426
Conversation
Add a report-only GitHub Actions workflow that runs the stress benchmark on PRs to main, surfacing peak memory and execution time in the job summary without blocking merges. Uses oras to pull pre-built benchmark data from Quay with upstream regeneration as fallback. Ref: EC-1818 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 12:24 PM UTC · Completed 12:41 PM UTC |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a GitHub Actions “Stress Benchmark” workflow for pull requests targeting ChangesStress benchmark workflow
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant BenchmarkRunner
participant StressBenchmark
participant JobSummary
GitHubActions->>BenchmarkRunner: Trigger stress benchmark workflow
BenchmarkRunner->>StressBenchmark: Prepare, build, and execute benchmark
StressBenchmark-->>BenchmarkRunner: Write stdout and stderr logs
BenchmarkRunner->>JobSummary: Parse metrics and publish summary
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests.
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
ReviewFindingsMedium
Low
Previous runReviewFindingsLow
Previous run (2)ReviewFindingsMedium
Low
Previous run (3)ReviewFindingsLow
Note: This PR modifies files under Previous run (4)ReviewFindingsMedium
Low
Labels: PR already has appropriate labels (github_actions, ci, size: M, requires-manual-review). Adding Review effort label for reviewer guidance. Previous run (5)ReviewFindingsMedium
Low
Previous run (6)ReviewFindingsHigh
Low
Previous run (7)ReviewFindingsLow
Note: This PR modifies files under Previous run (8)ReviewFindingsHigh
Low
Labels: PR adds a GitHub Actions CI workflow for benchmark automation |
Initial CI run with 10/5 completed in under a minute. Increase to 40/10 to target 5-6 minute total job time on CI runners. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 1:12 PM UTC · Completed 1:26 PM UTC |
Superseded by updated review
Rename workflow to "Stress Benchmark", add workflow_dispatch trigger, separate build from execution to surface compilation errors, and document CI-specific env var overrides. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 2:08 PM UTC · Completed 2:24 PM UTC |
Doubles component count from 40 to 80 to increase peak RSS (~4 GB), making memory regressions more visible in CI job summaries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Review · |
Redirect stderr to a file instead of /dev/null so panics and errors are surfaced in the job summary. Rename job ID from Stress to stress to match the dominant lowercase convention in the repo. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 12:02 PM UTC · Completed 12:16 PM UTC |
Superseded by updated review
All components use the same image digest, so internal caches deduplicate after the first — higher counts don't add memory pressure. Use the code default to avoid misleading numbers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 12:21 PM UTC · Completed 12:36 PM UTC |
- Add job name for GitHub Actions UI display - Add cache restore step matching repo convention - Use awk -v for variable passing instead of shell interpolation - Add set -o pipefail so benchmark failures are not masked by tee Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Review · ❌ Terminated · Started 1:08 PM UTC · Ended 1:23 PM UTC |
PR Summary by QodoAdd Stress Benchmark GitHub Actions workflow
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/benchmark.yaml:
- Around line 32-33: Add a job-level timeout to the benchmark job in the
workflow containing runs-on and continue-on-error, setting it above the
documented 6–8 minute runtime while still bounding hung pulls or stress
processes. Preserve continue-on-error so benchmark failures remain non-blocking.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Enterprise
Run ID: 9e1158a9-cb54-49bb-999b-074a054f1b55
📒 Files selected for processing (1)
.github/workflows/benchmark.yaml
Code Review by Qodo
Context used✅ Compliance rules (platform):
27 rules 1.
|
|
🤖 Finished Review · ✅ Success · Started 1:08 PM UTC · Completed 1:23 PM UTC |
Adds a 15-minute timeout to prevent hung oras pulls or stuck benchmark processes from running for the default 6-hour limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 10:53 AM UTC · Completed 11:05 AM UTC |
The ec CLI emits harmless logrus ERRO messages during normal validation, which made every job summary start with a misleading Stderr section. Gate it on step outcome so it only appears when the benchmark actually fails. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 11:58 AM UTC · Completed 12:13 PM UTC |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 12:14 PM UTC · Completed 12:31 PM UTC |
|
|
||
| - name: Setup Go environment | ||
| uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | ||
| with: |
There was a problem hiding this comment.
[low] permission-expansion
The cache restore step uses path: ** which restores cached content over the entire workspace. Combined with executing scripts from the workspace (prepare_data.sh, the built stress binary), a poisoned cache from the main branch could overwrite these files before execution. This is a pre-existing repo-wide pattern and not specific to this PR.
Suggested fix: Narrow the path to only the specific directories needed by the benchmark rather than using the ** wildcard. This would be a repo-wide improvement, not specific to this workflow.
What:
Add a report-only GitHub Actions workflow that runs the stress benchmark on PRs to main, surfacing peak memory and execution time in the job summary without blocking merges. Uses oras to pull pre-built benchmark data from Quay with upstream regeneration as fallback.
Why:
Tickets:
Ref: EC-1818