Răsfoiți Sursa

Make CLI build script Windows-friendly (#5835)

Christopher Tso 2 luni în urmă
părinte
comite
6dc4e5ac93
2 a modificat fișierele cu 15 adăugiri și 2 ștergeri
  1. 1 1
      packages/opencode/package.json
  2. 14 1
      packages/opencode/script/build.ts

+ 1 - 1
packages/opencode/package.json

@@ -7,7 +7,7 @@
   "scripts": {
   "scripts": {
     "typecheck": "tsgo --noEmit",
     "typecheck": "tsgo --noEmit",
     "test": "bun test",
     "test": "bun test",
-    "build": "./script/build.ts",
+    "build": "bun run script/build.ts",
     "dev": "bun run --conditions=browser ./src/index.ts",
     "dev": "bun run --conditions=browser ./src/index.ts",
     "random": "echo 'Random script updated at $(date)' && echo 'Change queued successfully' && echo 'Another change made' && echo 'Yet another change' && echo 'One more change' && echo 'Final change' && echo 'Another final change' && echo 'Yet another final change'",
     "random": "echo 'Random script updated at $(date)' && echo 'Change queued successfully' && echo 'Another change made' && echo 'Yet another change' && echo 'One more change' && echo 'Final change' && echo 'Another final change' && echo 'Yet another final change'",
     "clean": "echo 'Cleaning up...' && rm -rf node_modules dist",
     "clean": "echo 'Cleaning up...' && rm -rf node_modules dist",

+ 14 - 1
packages/opencode/script/build.ts

@@ -16,6 +16,7 @@ import pkg from "../package.json"
 import { Script } from "@opencode-ai/script"
 import { Script } from "@opencode-ai/script"
 
 
 const singleFlag = process.argv.includes("--single")
 const singleFlag = process.argv.includes("--single")
+const baselineFlag = process.argv.includes("--baseline")
 const skipInstall = process.argv.includes("--skip-install")
 const skipInstall = process.argv.includes("--skip-install")
 
 
 const allTargets: {
 const allTargets: {
@@ -78,7 +79,19 @@ const allTargets: {
 ]
 ]
 
 
 const targets = singleFlag
 const targets = singleFlag
-  ? allTargets.filter((item) => item.os === process.platform && item.arch === process.arch)
+  ? allTargets.filter((item) => {
+      if (item.os !== process.platform || item.arch !== process.arch) {
+        return false
+      }
+
+      // When building for the current platform, prefer a single native binary by default.
+      // Baseline binaries require additional Bun artifacts and can be flaky to download.
+      if (item.avx2 === false) {
+        return baselineFlag
+      }
+
+      return true
+    })
   : allTargets
   : allTargets
 
 
 await $`rm -rf dist`
 await $`rm -rf dist`