Skip to content

ci(test): fix test-suite timeout cancellations - #554

Merged
0xisk merged 3 commits into
mainfrom
ci/test-suite-timeout
Jun 8, 2026
Merged

ci(test): fix test-suite timeout cancellations#554
0xisk merged 3 commits into
mainfrom
ci/test-suite-timeout

Conversation

@0xisk

@0xisk 0xisk commented Jun 8, 2026

Copy link
Copy Markdown
Member

Types of changes

What types of changes does your code introduce to OpenZeppelin Midnight Contracts?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update (if none of the other choices apply)

Fixes #???

The Run Test Suite job 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 compact step now consumes ~14 of the 15-minute budget compiling ZK circuits (the multisig/ group alone is ~8 minutes as it has grown to 21 .compact files). The test step never meaningfully runs before the limit hits.

This PR:

  • Raises timeout-minutes from 15 to 30 in test.yml so the full compile + type-check + test pipeline can complete.
  • Pins actions/cache from 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

  • Chores
    • Updated build infrastructure dependencies to latest stable versions for improved reliability and performance.
    • Extended test suite execution timeout to accommodate longer-running test scenarios.

0xisk added 2 commits June 8, 2026 15:38
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.
@0xisk
0xisk requested review from a team as code owners June 8, 2026 13:39
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 40760683-2584-4a2c-9d69-697b6d6f0809

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

This 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.

Changes

CI Configuration Updates

Layer / File(s) Summary
Workflow and composite action configuration
.github/actions/setup/action.yml, .github/workflows/test.yml
Turbo cache action version is updated from v4.3.0 to v5.0.5 in the setup composite action, and the test suite job timeout is increased from 15 to 30 minutes.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested reviewers

  • andrew-fleming

Poem

🐰 A cache update, fresh and new,
And timeouts doubled—thirty-two,
Your CI flows will swiftly race,
With more breathing room and space! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately identifies the main change: fixing test-suite timeout cancellations by increasing the job timeout. It's concise, specific, and reflects the primary objective of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/test-suite-timeout

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 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

📥 Commits

Reviewing files that changed from the base of the PR and between ff0e9d8 and f3decc0.

📒 Files selected for processing (2)
  • .github/actions/setup/action.yml
  • .github/workflows/test.yml

@0xisk
0xisk merged commit 42fbe43 into main Jun 8, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants