Skip to content

tools: add Windows build and test workflow - #66434

Open
mcollina wants to merge 3 commits into
nodejs:mainfrom
mcollina:ci-windows-ccache
Open

mcollina wants to merge 3 commits into
nodejs:mainfrom
mcollina:ci-windows-ccache

Conversation

@mcollina

@mcollina mcollina commented Oct 1, 2026

Copy link
Copy Markdown
Member

Run JavaScript and native tests on Windows 2025 with Clang and Temporal. Cache compiler outputs with ccache on main and pull requests targeting main, using the Visual Studio compiler selected by vcbuild.


AI generated, reviewed by me.

Run JavaScript and native tests on Windows 2025 with Clang and Temporal.
Cache compiler outputs with ccache on main and pull requests targeting
main, using the Visual Studio compiler selected by vcbuild.

Assisted-by: pi
Signed-off-by: Matteo Collina <hello@matteocollina.com>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/actions

@nodejs-github-bot nodejs-github-bot added the meta Issues and PRs related to the general management of the project. label Oct 1, 2026
Comment thread .github/workflows/test-windows.yml Outdated
path: ${{ env.CCACHE_DIR }}
key: windows-2025-${{ runner.arch }}-ccache-v1-${{ env.CCACHE_VERSION }}-${{ github.sha }}
restore-keys: |
windows-2025-${{ runner.arch }}-ccache-v1-${{ env.CCACHE_VERSION }}-

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This would cause havoc with our cache limits. Every new build is going to attempt to save a new bundled-up copy of the entire cache, with no deduplication. I don't know exactly how large the ccache for a Windows build is, but it'll only take (20GB ÷ cache size) builds for the entire repo's GHA cache to be evicted.

sccache does release win32 builds, although I don't know whether it supports the clang-cl masquerading.

Remove the ccache-based compiler cache from the Windows build and test
workflow. Saving the bundled cache on every build would quickly exhaust
the repository's GitHub Actions cache limits, as raised in review.

Assisted-by: pi
Signed-off-by: Matteo Collina <matteo.collina@gmail.com>
@codecov

codecov Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.43%. Comparing base (cede7e6) to head (8d5d7a4).
⚠️ Report is 170 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #66434      +/-   ##
==========================================
+ Coverage   90.39%   90.43%   +0.04%     
==========================================
  Files         792      791       -1     
  Lines      275697   276563     +866     
  Branches    52868    53108     +240     
==========================================
+ Hits       249208   250119     +911     
+ Misses      16892    16850      -42     
+ Partials     9597     9594       -3     

see 98 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The Microsoft Store app execution alias for bash.exe cannot be stat'ed or
invoked reliably on GitHub Actions Windows runners, causing the test to fail
in CI. Skip the bash shells discovered by `where bash` when running on
GitHub Actions.

Assisted-by: pi
Signed-off-by: Matteo Collina <matteo.collina@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

meta Issues and PRs related to the general management of the project.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants