ci(test): fix test-suite timeout cancellations - #554
Conversation
The `turbo compact` step now spends ~14 of the 15-minute budget compiling ZK circuits (the multisig group alone takes ~8 minutes), leaving no room for the test step. GitHub cancels the job at the limit, surfacing as "The operation was canceled" rather than a real failure. Bump the budget to 30 minutes so the full compile + type-check + test pipeline can finish. A durable fix (turbo remote caching, or splitting compile and test into separate jobs) is tracked separately.
v4.3.0 runs on Node.js 20, which GitHub deprecates on the runners from 2026-06-16. v5.0.5 runs on Node.js 24 and clears the deprecation warning.
|
Important Review skippedAuto incremental 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: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
WalkthroughThis PR updates two GitHub Actions workflow configurations: upgrading the Turbo cache action dependency from v4.3.0 to v5.0.5 in the setup composite action, and doubling the test suite job timeout from 15 to 30 minutes to accommodate longer test execution times. ChangesCI Configuration Updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/test.yml (1)
20-48: Consider long-term performance optimization for the test suite.The timeout increase from 15 to 30 minutes is a reasonable short-term fix to prevent job cancellations. However, as the PR objectives note, consider implementing longer-term optimizations such as:
- Turbo remote caching to speed up subsequent runs
- Splitting compile and test steps into parallel jobs
- Optimizing the slowest test groups (e.g.,
multisig/at ~8 minutes)These improvements would reduce CI execution time and improve developer experience.
🤖 Prompt for 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. In @.github/workflows/test.yml around lines 20 - 48, The CI currently extends run time by increasing the run-suite timeout but should implement longer-term speedups: enable Turbo remote caching by adding a cache/remote setup and authentication before running turbo (refer to the commands "turbo compact", "turbo types", "turbo test" in the run-suite job), split the current run-suite steps into separate parallel jobs (e.g., a "compile-contracts" job that runs "turbo compact --filter=`@openzeppelin/compact-contracts`" and a "type-checks-and-tests" job that runs "turbo types" and "turbo test") so compile and test can run concurrently, and introduce per-job caching for build artifacts and test caches to avoid recompiling unchanged targets (focus on the slow multisig/ group by isolating and running it in its own job to profile and optimize it).
🤖 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.
Nitpick comments:
In @.github/workflows/test.yml:
- Around line 20-48: The CI currently extends run time by increasing the
run-suite timeout but should implement longer-term speedups: enable Turbo remote
caching by adding a cache/remote setup and authentication before running turbo
(refer to the commands "turbo compact", "turbo types", "turbo test" in the
run-suite job), split the current run-suite steps into separate parallel jobs
(e.g., a "compile-contracts" job that runs "turbo compact
--filter=`@openzeppelin/compact-contracts`" and a "type-checks-and-tests" job that
runs "turbo types" and "turbo test") so compile and test can run concurrently,
and introduce per-job caching for build artifacts and test caches to avoid
recompiling unchanged targets (focus on the slow multisig/ group by isolating
and running it in its own job to profile and optimize it).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: f4491a8a-5c28-42bd-bb4b-6c706587ddd2
📒 Files selected for processing (2)
.github/actions/setup/action.yml.github/workflows/test.yml
Types of changes
What types of changes does your code introduce to OpenZeppelin Midnight Contracts?
Put an
xin the boxes that applyFixes #???
The
Run Test Suitejob has been getting cancelled on recent PRs (e.g. #526) with "The job has exceeded the maximum execution time of 15m0s" → "The operation was canceled." This reads like a failure but is a timeout.The
turbo compactstep now consumes ~14 of the 15-minute budget compiling ZK circuits (themultisig/group alone is ~8 minutes as it has grown to 21.compactfiles). The test step never meaningfully runs before the limit hits.This PR:
timeout-minutesfrom 15 to 30 intest.ymlso the full compile + type-check + test pipeline can complete.actions/cachefrom v4.3.0 (Node 20, deprecated on runners from 2026-06-16) to v5.0.5 (Node 24), clearing the deprecation warning seen in the job logs.A durable follow-up (turbo remote caching, or splitting compile and test into separate parallel jobs) would cut wall-clock time rather than just widen the budget; tracked separately.
PR Checklist
Further comments
CI-only change. The timeout bump is the immediate unblock; the cache action pin is housekeeping committed separately for a clean history.
Summary by CodeRabbit