Просмотр исходного кода

fix(cli): stabilize Windows ARM64 Node builds (#37503)

Simon Klee 4 недель назад
Родитель
Сommit
f8470404e3
2 измененных файлов с 5 добавлено и 3 удалено
  1. 1 1
      .github/workflows/publish.yml
  2. 4 2
      packages/cli/script/build-node.ts

+ 1 - 1
.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 }}

+ 4 - 2
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`)