diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f6ac0b73bb90..7498bc24c977 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -135,7 +135,7 @@ jobs: - target: darwin-arm64 host: macos-26 - target: windows-arm64 - host: windows-2025 + host: blacksmith-4vcpu-windows-2025 - target: windows-x64 host: blacksmith-4vcpu-windows-2025 runs-on: ${{ matrix.settings.host }} diff --git a/packages/cli/script/build-node.ts b/packages/cli/script/build-node.ts index 0b4e29930e4f..9a67fd35d239 100644 --- a/packages/cli/script/build-node.ts +++ b/packages/cli/script/build-node.ts @@ -170,8 +170,10 @@ async function resolveTargetNode(target: NodeTarget, host?: string) { await rm(temporary, { recursive: true, force: true }) await mkdir(temporary) if (target.platform !== "win32") run("tar", ["-xzf", archive, "-C", temporary]) - else if (process.platform === "win32") run("tar", ["-xf", archive, "-C", temporary]) - else run("unzip", ["-q", archive, "-d", temporary]) + if (target.platform === "win32" && process.platform === "win32") { + run(path.join(process.env.SystemRoot ?? "C:\\Windows", "System32", "tar.exe"), ["-xf", archive, "-C", temporary]) + } + if (target.platform === "win32" && process.platform !== "win32") run("unzip", ["-q", archive, "-d", temporary]) await rm(targetDirectory, { recursive: true, force: true }) await rename(path.join(temporary, archiveName), targetDirectory) await writeFile(path.join(targetDirectory, ".verified"), `${expected}\n`)