Skip to content

Track restoring Windows Node 26 CI and prebuilt binaries #276

Description

@yanyiwu

Background

The Node 22/24/26 workflow update landed in 23e7e4e8ba48adbe03e04012f49c427bced47d57, but the test workflow failed only on build (26.x, windows-latest) during npm ci:

The install tried to download a Node 26 Windows prebuilt binary for ABI node-v147, then fell back to source compilation. The source build generated a Visual Studio project that inherited clang ThinLTO flags from the Node 26.3.0 header common.gypi, and MSVC failed at link time:

cl : warning D9002: ignoring unknown option '-flto=thin'
LINK : warning LNK4044: unrecognized option '/flto=thin'; ignored
LINK : fatal error LNK1117: syntax error in option 'opt:lldltojobs=2'

PR #275 restored green CI by excluding only windows-latest + 26.x from test.yml and github_release.yml:

Why this needs follow-up

The matrix exclusion is a temporary workaround, not the final desired state. While Node 26 remains covered on Linux, ARM Linux, and macOS, the release workflow will not publish a Windows Node 26 prebuilt binary. Windows users on Node 26 may still fall back to local source compilation and hit the same MSVC/linker failure.

Goal

Restore windows-latest + 26.x in both workflows once the Node 26/node-gyp/MSVC ThinLTO flag issue has a reliable fix or workaround.

Suggested next steps

  • Track whether a newer Node 26 release or node-gyp release stops injecting clang ThinLTO flags into MSVC builds.
  • Test removing the matrix exclusion after the upstream toolchain behavior changes.
  • Confirm npm ci, npm test, and node-pre-gyp package pass on Windows Node 26.
  • Restore Windows Node 26 prebuilt binary publishing in github_release.yml.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions