turbopack: Build win* targets from linux#92594
turbopack: Build win* targets from linux#92594mmastrac wants to merge 3 commits intommastrac/docker-buildx-cachefrom
win* targets from linux#92594Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
e68834b to
37215bc
Compare
Failing test suitesCommit: ce8355f | About building and testing Next.js
Expand output● app dir - metadata dynamic routes suspense › should render metadata in head when root layout is wrapped with Suspense for bot requests
Expand output● missing-suspense-with-csr-bailout › useSearchParams › should pass build if useSearchParams is wrapped in a suspense boundary |
37215bc to
8c45577
Compare
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📎 Tarball URL |
b37d12d to
fe3959a
Compare
Merging this PR will degrade performance by 3.21%
Performance Changes
Comparing Footnotes
|
6a35def to
ec1cf99
Compare
win* targets from linux
ec1cf99 to
c52847f
Compare
af83b4b to
95aa7f1
Compare
2dd386c to
6e4f13c
Compare
6e4f13c to
ddcada2
Compare
94cdf02 to
f0e53bd
Compare
00f3d05 to
a2ce16e
Compare
c22d352 to
2ed35d2
Compare
a2ce16e to
d2ac67c
Compare
2ed35d2 to
c22d352
Compare
4e31ae3 to
bb03dad
Compare
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📎 Tarball URL |
Try restoring the .node binary from turbo remote cache before building the Docker image. On cache hit, skip Docker entirely. On miss, build and save the result for next time. Also add --profile flag to native-cache.js so release and release-with-assertions binaries are cached separately.
Restore the cache-disable conditionals for production/staging/force-preview deploys that were accidentally dropped in the windows-on-linux changes.

What
Cross-compile Windows native binaries (x86_64 and aarch64) from Linux using Docker + cargo-xwin, replacing the Windows self-hosted runners for native builds.
Why
How
windowsstage toscripts/native-builder.Dockerfilewith cargo-xwin, lld-link, and pre-cached MSVC SDKbuild-native-windowsjobs run on Linux metal runners with a matrix ofx86_64-pc-windows-msvcandaarch64-pc-windows-msvc.nodebinary from turbo remote cache (native-cache.js). On cache hit, skip Docker entirely.nodefiles as GitHub artifacts for Windows test jobs to consumeChanges
.github/workflows/build_and_test.yml: Replace Windows runner build with Linux cross-compilation matrix, add native cache restore/save, addbuildNativeTargetto Windows test consumer jobsscripts/native-builder.Dockerfile: Addwindowsstage with cargo-xwin, rustup Windows targets, lld-link/clang-cl symlinks, MSVC SDK pre-cachescripts/docker-native-build.sh: Add Windows MSVC case withCARGO_ENCODED_RUSTFLAGS, llvm-strip for PE filesscripts/docker-native-build.js: Add Windows targets,--skip-imageflag, auto-select Docker image by targetscripts/native-cache.js: Add--profileflag so release and release-with-assertions binaries cache separately (bumps cache key to v2)Cargo.toml: Patch psm crate with inline asm for Windows (eliminates external .asm files that need MASM)