Skip to content

ci: Remove integration test serialization#12079

Merged
anthonyshew merged 3 commits into
mainfrom
shew/relax-integration-serial
Mar 1, 2026
Merged

ci: Remove integration test serialization#12079
anthonyshew merged 3 commits into
mainfrom
shew/relax-integration-serial

Conversation

@anthonyshew

Copy link
Copy Markdown
Contributor

Summary

  • Removes the turborepo-integration-serial test group and its override from the nextest config.

Why

These tests (boundaries, query, ls) were serialized as a speculative workaround for macOS flakiness in #11128, with an explicit note that it "likely only masks a root cause." Investigation shows there is no shared mutable state:

  • Each test creates its own tempdir
  • Each test spawns its own turbo process
  • TURBO_CONFIG_DIR_PATH is set per-test to the tempdir
  • No port binding, no daemon, no sockets
  • No global environment variable manipulation
  • Insta snapshot names are unique per test

Additionally, the test(ls) filter was substring-matching "ls" in test names, accidentally catching "false", "fails", "details", etc. — serializing ~20 completely unrelated tests.

Testing

If CI passes without flakiness, the serialization was unnecessary. If flakiness reappears on macOS, we should investigate the actual root cause rather than re-serializing.

Two changes:

1. The test(ls) filter was substring-matching 'ls' in test names,
   catching 'false', 'fails', 'details', etc. This was accidentally
   serializing ~20 unrelated tests. Switch to binary() matching to
   target only the intended test binaries.

2. Bump turborepo-integration-serial from max-threads=1 to
   max-threads=2. Each test is fully isolated (own tempdir, own turbo
   process, own TURBO_CONFIG_DIR_PATH, no ports, no global env vars)
   so there is no shared mutable state requiring strict serialization.
These tests are fully isolated — each creates its own tempdir, spawns
its own turbo process, sets its own TURBO_CONFIG_DIR_PATH, binds no
ports, and manipulates no global env vars. There is no shared mutable
state requiring serialization.

The original serialization was added as a speculative workaround for
macOS flakiness with an explicit note that it 'likely only masks a
root cause'. Additionally, the test(ls) filter was substring-matching
'ls' in test names, accidentally catching 'false', 'fails', 'details',
etc. and serializing ~20 unrelated tests.
@anthonyshew anthonyshew requested a review from a team as a code owner March 1, 2026 02:51
@anthonyshew anthonyshew requested review from tknickman and removed request for a team March 1, 2026 02:51
@vercel

vercel Bot commented Mar 1, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
examples-basic-web Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-designsystem-docs Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-gatsby-web Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-kitchensink-blog Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-nonmonorepo Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-svelte-web Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-tailwind-web Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
examples-vite-web Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
turbo-site Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
turborepo-agents Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am
turborepo-test-coverage Ready Ready Preview, Comment, Open in v0 Mar 1, 2026 3:03am

Changes to .config/nextest.toml should trigger Rust tests since they
directly affect test execution behavior.
@github-actions

github-actions Bot commented Mar 1, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Metric Coverage
Lines 84.43%
Functions 54.93%
Branches 0.00%

View full report

@anthonyshew anthonyshew merged commit 24d7c02 into main Mar 1, 2026
67 checks passed
@anthonyshew anthonyshew deleted the shew/relax-integration-serial branch March 1, 2026 03:21
github-actions Bot added a commit that referenced this pull request Mar 2, 2026
## Release v2.8.13-canary.9

Versioned docs: https://v2-8-13-canary-9.turborepo.dev

### Changes

- fix: Treat `npm: alias` dependencies as external, not workspace
references (#12061) (`b179cb8`)
- test: Port 18 more prysk tests to Rust (other/ +
lockfile-aware-caching/) (#12062) (`7887af2`)
- release(turborepo): 2.8.13-canary.8 (#12063) (`2a5522a`)
- fix: Preserve file: protocol entries in pruned yarn v1 lockfile
(#12064) (`ae5c1a1`)
- perf: Use stack-allocated OidHash in FileHashes and skip expanded
hashes on normal runs (#12065) (`677b248`)
- test: Port all 8 find-turbo prysk tests to Rust (#12066) (`f827fca`)
- fix: Support pnpm per-workspace lockfiles in turbo prune (#12067)
(`23d047d`)
- test: Port final 2 prysk tests to Rust (100% complete) (#12068)
(`6d7e057`)
- fix: Resolve Berry prune failure when resolutions contain patch
overrides (#12069) (`6fe3c5e`)
- test: Add lockfile fixture for yarn berry resolution pruning (issue
#2791) (#12071) (`6cc1654`)
- chore: Remove prysk test framework entirely (#12070) (`ed2d05a`)
- refactor: Clean up test infrastructure and eliminate duplication
(#12072) (`338911d`)
- fix: Retain injected workspace package entries during pnpm lockfile
pruning (#12073) (`acbe869`)
- ci: Exclude turborepo-lsp and turborepo-schema-gen from test builds
(#12075) (`4ce12e2`)
- refactor: Clean up test infrastructure + improve test quality (#12074)
(`4571f2b`)
- ci: Remove redundant cargo build from coverage job (#12077)
(`3c9bbe2`)
- perf: Speed up lockfile test suite (#12078) (`20024df`)
- ci: Remove integration test serialization (#12079) (`24d7c02`)
- fix: Preserve `file:` and `link:` protocol entries in pruned bun
lockfile (#12076) (`2635d9a`)
- fix: Stop running unnecessary npm install in engines tests (#12081)
(`24e4905`)
- test: Add lockfile fixture for pnpm v9 injected workspace deps (issue
#8243) (#12082) (`4d4929b`)
- fix: Filter orphaned Yarn packageExtensions entries during lockfile
pruning (#12084) (`68eb223`)
- fix: Align experimentalObservability on object maps rather than arrays
(#12089) (`9b9d1e4`)
- examples: Upgrade with-react-native-web example to use latest versions
(#12085) (`980ca43`)
- fix: duplicate /signup? in Vercel URL (#12088) (`e865b51`)
- ci: Deduplicate Rust test compilation with nextest archive (#12083)
(`962cf39`)
- fix: Prevent yarn integration tests from hanging on corepack prompts
(#12090) (`29b0da7`)
- fix: Prevent turbo dev from hanging when daemon file watching fails
(#12091) (`b0d2f62`)
- ci: Skip pnpm install for Rust test jobs (#12092) (`ebd137f`)
- perf: Optimize npm lockfile parser (#12093) (`e4b4a66`)
- chore: Trim unused dependency features for faster compilation (#12094)
(`03b79e0`)
- fix: Prevent lockfile-aware yarn test from hanging on corepack
downloads (#12095) (`bf516e4`)
- fix: Exclude turborepo-repository from JS smoke test in release
workflow (#12097) (`fecc400`)

---------

Co-authored-by: Turbobot <turbobot@vercel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci Internal CI for vercel/turborepo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant