Skip to content

ci: parallelize Node tests on ubuntu, single Node 24 on macOS/windows#8570

Merged
Boshen merged 3 commits intomainfrom
ci/parallelize-node-version-tests
Mar 7, 2026
Merged

ci: parallelize Node tests on ubuntu, single Node 24 on macOS/windows#8570
Boshen merged 3 commits intomainfrom
ci/parallelize-node-version-tests

Conversation

@Boshen
Copy link
Member

@Boshen Boshen commented Mar 7, 2026

Summary

  • Parallelize Node 20/22/24 test runs using matrix strategy in both reusable-node-test and reusable-node-dev-server-test workflows
  • Run Node 20/22/24 matrix only on ubuntu; macOS and windows run Node 24 only
  • This reduces billable minutes by ~46% vs main (79 vs 146) while keeping wall-clock ~4min faster than main

Related #8553

🤖 Generated with Claude Code

Replace sequential Node version test blocks with a matrix strategy
in both reusable-node-test and reusable-node-dev-server-test workflows.
Each Node version now runs as a separate parallel job, reducing
wall-clock time on the critical path (especially Windows dev-server-test).

Tradeoff: 3x CI runner minutes per workflow, but significantly reduced
wall-clock time.

Closes #8553

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 7, 2026 02:07
@netlify
Copy link

netlify bot commented Mar 7, 2026

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit aba7813
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69ab98a4144840000879ef8e

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR optimizes CI wall-clock time by converting the Node 20/22/24 test execution in the reusable Node workflows from sequential steps into a parallel strategy.matrix, while keeping the rollup pass-diff behavior aligned with the previous ordering (only Node 24 performs the pass-diff check).

Changes:

  • Parallelize Node 20/22/24 in reusable-node-test using a matrix job name and a single shared step set.
  • Parallelize Node 20/22/24 in reusable-node-dev-server-test using the same matrix strategy.
  • Preserve rollup SKIP_PASS_DIFF semantics so the pass-diff check only runs on Node 24.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/reusable-node-test.yml Replaces sequential Node 20/22/24 blocks with a matrix and gates rollup pass-diff to Node 24.
.github/workflows/reusable-node-dev-server-test.yml Replaces sequential Node 20/22/24 dev-server test blocks with a matrix.

@Boshen Boshen mentioned this pull request Mar 7, 2026
…e job

- Remove setup-rust from reusable-node-test and reusable-node-dev-server-test
  workflows since no step uses Rust or just tooling
- Extract Type Check and Node Type Test into a standalone job in ci.yml
  that runs once on ubuntu instead of 9 times across the matrix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7098944cd6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…ndows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Boshen Boshen changed the title ci: parallelize Node 20/22/24 test runs using matrix strategy ci: parallelize Node tests on ubuntu, single Node 24 on macOS/windows Mar 7, 2026
Copilot AI review requested due to automatic review settings March 7, 2026 03:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

@Boshen Boshen merged commit 853df47 into main Mar 7, 2026
71 of 72 checks passed
@Boshen Boshen deleted the ci/parallelize-node-version-tests branch March 7, 2026 05:13
@github-actions github-actions bot mentioned this pull request Mar 9, 2026
shulaoda added a commit that referenced this pull request Mar 9, 2026
## [1.0.0-rc.8] - 2026-03-09

### 🚀 Features

- watch: enable full functional fs watcher in wasm (#8575) by @hyf0
- watch: expose debounce related options (#8572) by @hyf0

### 🐛 Bug Fixes

- detect new URL(…, import.meta.url) with no-sub template literal (#8565) by @char
- devtools: trace dynamic imports in devtools (#8581) by @cal-gooo
- watch: rebuild when a previously missing file is created (#8562) by @hyf0-agent
- watch: filter out Access events to prevent infinite rebuild loop on Linux (#8557) by @hyf0-agent

### 🚜 Refactor

- watch: remove auto watch for fail imports (#8585) by @hyf0
- fs_watcher: unify the way of constructing watcher (#8571) by @hyf0
- cli: migrate CLI to CAC (#8551) by @h-a-n-a
- switch asset module support from hard-code to builtin plugin (#8546) by @hyf0

### 📚 Documentation

- fix subject-verb agreement in why-bundlers.md (#8591) by @brandonzylstra
- maintenance: align release and canary workflow guide (#8538) by @minsoo-web
- add `format` option to directives example config (#8590) by @shulaoda
- fix: change twitter to x logo in team (#8552) by @mdong1909
- correct composable filter support explanation (#8550) by @sapphi-red

### ⚡ Performance

- testing: share tokio runtime across fixture tests (#8567) by @Boshen

### 🧪 Testing

- hmr: fix infinite loop in dev server test retry logic (#8576) by @hyf0-agent
- cli: add more cli-e2e test cases (#8548) by @h-a-n-a

### ⚙️ Miscellaneous Tasks

- docs: update in-depth/directives for `output.strict` option (#8535) by @minsoo-web
- add PNPM_HOME Dev Drive mapping to Windows CI workflows (#8589) by @Boshen
- deps: update github-actions (#8588) by @renovate[bot]
- move Windows cargo target dir to Dev Drive (#8586) by @Boshen
- optimize cache keys to fix race conditions and reduce usage (#8578) by @Boshen
- remove WASI build & test pipeline (#8580) by @Boshen
- remove unnecessary submodule checkouts (#8577) by @Boshen
- use Dev Drive for Windows CI jobs (#8574) by @Boshen
- skip redundant native binding build for browser and remove standalone job (#8573) by @Boshen
- parallelize Node tests on ubuntu, single Node 24 on macOS/windows (#8570) by @Boshen
- docs: bump @voidzero-dev/vitepress-theme to 4.8.0 (#8558) by @crusty-voidzero
- dedupe type-check from dev server workflow (#8554) by @Boshen

### ❤️ New Contributors

* @brandonzylstra made their first contribution in [#8591](#8591)
* @char made their first contribution in [#8565](#8565)
* @cal-gooo made their first contribution in [#8581](#8581)
* @hyf0-agent made their first contribution in [#8562](#8562)
* @h-a-n-a made their first contribution in [#8551](#8551)

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
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.

3 participants