Add stress benchmark CI workflow - #3426
Conversation
|
🤖 Finished Review · ✅ Success · Started 12:24 PM UTC · Completed 12:41 PM UTC |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 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->>BenchmarkRunner: Prepare tools and benchmark data
BenchmarkRunner->>StressBenchmark: 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:
|
ReviewFindingsHigh
Medium
Low
Next steps:
Previous runReviewFindingsHigh
Medium
Low
Next steps:
Previous run (2)ReviewFindingsMedium
Low
Previous run (3)ReviewFindingsLow
Previous run (4)ReviewFindingsMedium
Low
Previous run (5)ReviewFindingsLow
Note: This PR modifies files under Previous run (6)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 (7)ReviewFindingsMedium
Low
Previous run (8)ReviewFindingsHigh
Low
Previous run (9)ReviewFindingsLow
Note: This PR modifies files under Previous run (10)ReviewFindingsHigh
Low
Labels: PR adds a GitHub Actions CI workflow for benchmark automation |
|
🤖 Finished Review · ✅ Success · Started 1:12 PM UTC · Completed 1:26 PM UTC |
Superseded by updated review
|
🤖 Finished Review · ✅ Success · Started 2:08 PM UTC · Completed 2:24 PM UTC |
|
🤖 Review · |
|
🤖 Finished Review · ✅ Success · Started 12:02 PM UTC · Completed 12:16 PM UTC |
Superseded by updated review
|
🤖 Finished Review · ✅ Success · Started 12:21 PM UTC · Completed 12:36 PM UTC |
|
🤖 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
1.
|
|
🤖 Finished Review · ✅ Success · Started 1:08 PM UTC · Completed 1:23 PM UTC |
|
🤖 Finished Review · ✅ Success · Started 11:58 AM UTC · Completed 12:13 PM UTC |
|
🤖 Finished Review · ✅ Success · Started 12:14 PM UTC · Completed 12:31 PM UTC |
|
Looks good I guess. Did you look at the fullsend suggestions? |
|
🤖 Review · Commit: |
I did, they were all outdated, weird. I was expecting the comment to get marked as outdated automatically, but that didn't work so I manually resolved them. |
|
🤖 Finished Review · ✅ Success · Started 5:51 PM UTC · Completed 6:07 PM UTC Commit: |
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The CLI now rejects past effective times by default. The benchmark uses a pinned date for reproducibility, so opt into the override. Resolves: EC-1818 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Align pinned action versions with the rest of the repository: - harden-runner v2.15.1 → v2.20.1 - checkout v6.0.2 → v6.1.0 - cache/restore v5.0.4 → v5.1.0 - setup-go v6.3.0 → v6.5.0 Resolves: EC-1818 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Review · ❌ Terminated · Started 6:18 AM UTC · Ended 6:35 AM UTC Commit: |
|
Had to force push, to get the commits that fixed the vulnerability-related violations I was getting. |
|
🤖 Finished Review · ✅ Success · Started 6:18 AM UTC · Completed 6:35 AM UTC Commit: |
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.
Also adds --allow-past-effective-time to the stress benchmark's CLI args, since the benchmark pins --effective-time 2024-12-10T00:00:00Z for reproducibility and the CLI now rejects past dates by default (EC-1993).
Why:
There is no automated way to catch memory or performance regressions before merge. This workflow gives reviewers a quick read on resource usage without gating PRs on benchmark results.
Tickets:
Ref: EC-1818