From 2a0b0b9109869c6e5a091bc1b0d7bdba35e5a4a0 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 10 Mar 2026 17:44:16 +0700 Subject: [PATCH] Fix Windows runtime packaging --- CHANGELOG.md | 4 ++++ .../desktop/scripts/build-managed-runtime.mjs | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2daf3a494..3f0b80f69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.1.22 - 2026-03-10 +### Fixed +- Fixed the Windows desktop release runtime builder to package managed-runtime workspaces without relying on a fragile `npm pack` shell invocation in GitHub Actions. + ## 0.1.21 - 2026-03-10 ### Improved - Improved desktop release reliability by fixing the Windows managed-runtime build path during GitHub Actions releases. diff --git a/packages/desktop/scripts/build-managed-runtime.mjs b/packages/desktop/scripts/build-managed-runtime.mjs index ee9bb784c..0a75e0e4d 100644 --- a/packages/desktop/scripts/build-managed-runtime.mjs +++ b/packages/desktop/scripts/build-managed-runtime.mjs @@ -196,10 +196,13 @@ function runCommand(command, args, options = {}) { encoding: "utf8", ...options, }); - if (result.status !== 0) { + if (result.status !== 0 || result.error) { throw new Error( [ `Command failed: ${command} ${args.join(" ")}`, + result.error ? String(result.error) : null, + result.signal ? `signal: ${result.signal}` : null, + result.status != null ? `exit code: ${result.status}` : null, result.stdout?.trim(), result.stderr?.trim(), ] @@ -245,7 +248,17 @@ async function ensureWorkspaceBuilds() { async function packWorkspace(packageRoot, tarballRoot) { await ensureDir(tarballRoot); - const result = runCommand("npm", ["pack", "--json", "--pack-destination", tarballRoot], { + const npmExecPath = process.env.npm_execpath; + if (!npmExecPath) { + throw new Error("Missing npm_execpath while building managed runtime."); + } + const result = runCommand(process.execPath, [ + npmExecPath, + "pack", + "--json", + "--pack-destination", + tarballRoot, + ], { cwd: packageRoot, }); const [{ filename }] = JSON.parse(result.stdout.trim());