summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop-electron/scripts
diff options
context:
space:
mode:
authorLuke Parker <[email protected]>2026-03-12 10:25:09 +1000
committerGitHub <[email protected]>2026-03-12 00:25:09 +0000
commit547eb7676df427de6b5195005e2a3b0322a72f1c (patch)
treefc0307b5f65f5760a677b654f97efad7a4c74924 /packages/desktop-electron/scripts
parent83f083ee0d320ab7cd800278cdde3e2eff23ce86 (diff)
downloadopencode-547eb7676df427de6b5195005e2a3b0322a72f1c.tar.gz
opencode-547eb7676df427de6b5195005e2a3b0322a72f1c.zip
feat(windows): add arm64 release targets for cli and desktop (#16696)
Diffstat (limited to 'packages/desktop-electron/scripts')
-rw-r--r--packages/desktop-electron/scripts/finalize-latest-yml.ts14
-rw-r--r--packages/desktop-electron/scripts/utils.ts7
2 files changed, 17 insertions, 4 deletions
diff --git a/packages/desktop-electron/scripts/finalize-latest-yml.ts b/packages/desktop-electron/scripts/finalize-latest-yml.ts
index 42ec23b64..aa2ae5c96 100644
--- a/packages/desktop-electron/scripts/finalize-latest-yml.ts
+++ b/packages/desktop-electron/scripts/finalize-latest-yml.ts
@@ -78,9 +78,17 @@ async function read(subdir: string, filename: string): Promise<LatestYml | undef
const output: Record<string, string> = {}
-// Windows: single arch, pass through
-const win = await read("latest-yml-x86_64-pc-windows-msvc", "latest.yml")
-if (win) output["latest.yml"] = serialize(win)
+// Windows: merge arm64 + x64 into single file
+const winX64 = await read("latest-yml-x86_64-pc-windows-msvc", "latest.yml")
+const winArm64 = await read("latest-yml-aarch64-pc-windows-msvc", "latest.yml")
+if (winX64 || winArm64) {
+ const base = winArm64 ?? winX64!
+ output["latest.yml"] = serialize({
+ version: base.version,
+ files: [...(winArm64?.files ?? []), ...(winX64?.files ?? [])],
+ releaseDate: base.releaseDate,
+ })
+}
// Linux x64: pass through
const linuxX64 = await read("latest-yml-x86_64-unknown-linux-gnu", "latest-linux.yml")
diff --git a/packages/desktop-electron/scripts/utils.ts b/packages/desktop-electron/scripts/utils.ts
index 4c9af1fc7..1c0add87d 100644
--- a/packages/desktop-electron/scripts/utils.ts
+++ b/packages/desktop-electron/scripts/utils.ts
@@ -20,6 +20,11 @@ export const SIDECAR_BINARIES: Array<{ rustTarget: string; ocBinary: string; ass
assetExt: "zip",
},
{
+ rustTarget: "aarch64-pc-windows-msvc",
+ ocBinary: "opencode-windows-arm64",
+ assetExt: "zip",
+ },
+ {
rustTarget: "x86_64-pc-windows-msvc",
ocBinary: "opencode-windows-x64-baseline",
assetExt: "zip",
@@ -41,7 +46,7 @@ export const RUST_TARGET = Bun.env.RUST_TARGET
function nativeTarget() {
const { platform, arch } = process
if (platform === "darwin") return arch === "arm64" ? "aarch64-apple-darwin" : "x86_64-apple-darwin"
- if (platform === "win32") return "x86_64-pc-windows-msvc"
+ if (platform === "win32") return arch === "arm64" ? "aarch64-pc-windows-msvc" : "x86_64-pc-windows-msvc"
if (platform === "linux") return arch === "arm64" ? "aarch64-unknown-linux-gnu" : "x86_64-unknown-linux-gnu"
throw new Error(`Unsupported platform: ${platform}/${arch}`)
}