Share native binaries via GitHub artifacts#92758
Merged
Merged
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Apr 14, 2026
Contributor
Tests Passed |
Contributor
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 |
e7d54c6 to
5e63269
Compare
5e63269 to
726c914
Compare
Add nativeArtifact/uploadNativeArtifact inputs to build_reusable.yml. Build jobs upload .node files as artifacts, test jobs download them instead of rebuilding via turborepo. Rust installation and sccache are skipped when downloading pre-built artifacts. Both Linux and Windows native builds upload artifacts. All test jobs download the appropriate artifact for their platform.
726c914 to
80f45e5
Compare
When the artifact download fails, consumer jobs fall through to building natively but used the default linux target. Pass the correct Windows target so the fallback build works.
bgw
approved these changes
Apr 14, 2026
| continue-on-error: true | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| name: ${{ contains(fromJson(inputs.runs_on_labels), 'windows') && 'next-swc-windows' || 'next-swc-linux' }} |
Member
There was a problem hiding this comment.
I don't like that the naming of these artifacts is now split between build_reusable and build_and_test.
Either build_reusable should always determine the artifact name itself, or build_and_test should pass down a downloadNativeArtifact parameter.
Contributor
Author
There was a problem hiding this comment.
I think we'll be able to clean this up as we continue the build refactoring
This was referenced Apr 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What
Use the GHA cache instead of turborepo cache for intemediate build products.
Why
turborepo is fast, but GHA is pretty fast too (adds a few seconds), and this takes load off the cache server. As a bonus, we get intermediate artifacts available for download and we work regardless of cache server availability.
Details
nativeArtifact/uploadNativeArtifactinputs tobuild_reusable.yml.nodefiles as GitHub artifactsnext-swc-linux) and Windows (next-swc-windows) native builds upload artifacts