Conversation
Member
Author
How to use the Graphite Merge QueueAdd the label auto-merge to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
33 tasks
475016b to
45e4691
Compare
45e4691 to
bc38b7a
Compare
bc38b7a to
810d51c
Compare
fengmk2
commented
Mar 18, 2026
810d51c to
efc5c42
Compare
Member
|
@fengmk2 should also add musl target cargo tests and cli e2e tests |
c63425a to
7ffe689
Compare
efc5c42 to
d143fc6
Compare
9db93c2 to
cc73dcc
Compare
e49456f to
2572e70
Compare
cc73dcc to
000f043
Compare
000f043 to
00ae674
Compare
Published vite-plus 0.1.13 doesn't include musl NAPI bindings yet. Skip tests that depend on the npm-published package on musl targets: - migration tests that install vite-plus@latest - command-pack-exe (uses tsdown which loads rolldown binding) - command-upgrade-check Remove debug steps from CI now that root cause is identified.
The snap test runner passes CI through to subprocesses, and vp commands may behave differently in CI mode.
Alpine's cat outputs "can't open" while GNU cat outputs "No such file or directory". Use test ! -f which is portable and produces no output.
- Replace cat FILE checks with test ! -f in remaining snap tests: command-init-inline-config-existing, migration-existing-lint-staged-config, migration-eslint-lintstagedrc, create-missing-typecheck - Skip command-dlx-npm10 on musl
In CI environments (especially Docker containers), the log file path is not accessible to the user. Print the log contents directly when CI=true.
Pass CI=true so install.sh prints log contents on failure instead of pointing to a file. Use bash -x for full debug trace output.
The error() function calls exit 1 internally, so the cat of the install log was never reached. Use echo directly with the CI check before exiting.
…released The published vp binary (alpha) downloads glibc Node.js from nodejs.org. The musl fix (unofficial-builds.nodejs.org) is in this PR but not yet released. These tests will work after the first musl-enabled release.
The unofficial-builds Node.js musl binary dynamically links to libstdc++.so.6 and libgcc_s.so.1 (uses musl libc but GNU C++ runtime). Install libstdc++ in Alpine containers for the musl install tests.
fengmk2
commented
Mar 24, 2026
install.sh runs in a bash subprocess; its .profile changes don't propagate back to the outer sh -c shell. Use export PATH directly.
QEMU user-mode emulation doesn't support all syscalls needed by rolldown/tsdown (ENOSYS error 38), same as the glibc ARM64 job.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Summary
Add build, publish, and CI support for Linux musl targets (
x86_64-unknown-linux-muslandaarch64-unknown-linux-musl), enabling vite-plus to run in Alpine/musl-based Docker containers.cargo-zigbuild(napi-cross only supports gnu)unofficial-builds.nodejs.org(official nodejs.org only provides glibc)test-muslCI job running cargo check/test in Alpine containercli-e2e-test-muslCI job with snap tests in Alpine Dockertest-standalone-install.yml)ignoredPlatforms(e.g.{ "os": "linux", "libc": "musl" })cat FILE && exit 1 || truewith portabletest ! -f FILEin snap testsTest plan
cargo test -p vite_global_cli— registry test includes musltest-musljob — cargo check + test in Alpine containercli-e2e-test-musljob — full E2E with snap tests in Alpine Dockertest-standalone-install.yml— musl x64 + arm64 install testsCloses #992