-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
Task name
UseNode@1
Describe your feature request here
Summary
Please add first-class Alpine (musl) support to UseNode@1.
In Alpine container jobs, the task reports success and prepends Node to PATH, but the next task fails when trying to run node.
Problem
In Alpine-based container jobs, UseNode@1 finds/uses a cached Node tool path and updates PATH successfully, but the Node binary it points to is not executable in that runtime.
This creates a misleading success signal:
Switch Node version task succeeds
Next task fails with "No such file or directory" when invoking node
Repro
Pipeline in Alpine container:
Run UseNode@1 with version 22
Run a PowerShell or script step with node -v
Actual behaviour
UseNode@1 output shows success:
2026-03-23T12:24:13.1845960Z Found tool in cache: node 20.20.1 x64
2026-03-23T12:24:13.1846384Z Prepending PATH environment variable with directory: /__t/node/20.20.1/x64/bin
Then the next task fails:
2026-03-23T12:24:21.4899600Z ... Program 'node' failed to run: An error occurred trying to start process '/__t/node/20.20.1/x64/bin/node' ... No such file or directory
2026-03-23T12:24:21.5345942Z ##[error]PowerShell exited with code '1'.
Expected behaviour
When running in Alpine/musl containers, UseNode@1 should:
detect musl runtime, and
install/select a musl-compatible Node binary (or fail explicitly with a clear unsupported-runtime message before reporting success).
Why this matters
Alpine containers are common in CI.
Current behaviour is confusing because the switch task succeeds but usage fails later.
Teams must maintain custom branching and fallback scripting to nvm + unofficial musl builds.