feat(FN-5608): add linux arm64 dual-arch support to desktop release workflo

Adds Linux ARM64 as a target architecture to the desktop release pipeline, including dual-arch release and test-release workflows, electron-builder configuration updates, and corresponding tests and documentation.

Fusion-Task-Id: FN-5608

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Fusion-Task-Id: FN-5608
This commit is contained in:
gsxdsm
2026-05-27 03:36:50 -07:00
parent 9504c31a85
commit 925a466043
6 changed files with 61 additions and 12 deletions

View File

@@ -84,6 +84,27 @@ describe("electron-builder desktop config", () => {
(match) => match[1]?.trim(),
);
expect(linuxTargetEntries[0]).toBe("AppImage");
const linuxArchMatches = Array.from(
linuxSection.matchAll(
/-\s*target:\s*(AppImage|deb|tar\.gz)\s*arch:\s*([\s\S]*?)(?=\n\s*-\s*target:|\n\w|$)/g,
),
);
expect(linuxArchMatches).toHaveLength(3);
const linuxArchByTarget = new Map(
linuxArchMatches.map((match) => {
const target = match[1];
const archBlock = match[2] ?? "";
const archValues = Array.from(archBlock.matchAll(/-\s*(x64|arm64)/g), (entry) => entry[1]).sort();
return [target, archValues] as const;
}),
);
expect(linuxArchByTarget.get("AppImage")).toEqual(["arm64", "x64"]);
expect(linuxArchByTarget.get("deb")).toEqual(["arm64", "x64"]);
expect(linuxArchByTarget.get("tar.gz")).toEqual(["arm64", "x64"]);
});
});

View File

@@ -32,6 +32,10 @@ describe("desktop release workflow wiring", () => {
expect(workflow).toContain("build-desktop-linux:");
expect(workflow).toContain("runs-on: ubuntu-latest");
expect(workflow).toMatch(/pnpm --filter @fusion\/desktop dist:linux|electron-builder --linux/);
expect(workflow).toContain("--x64");
expect(workflow).toContain("--arm64");
expect(workflow).toContain("Fusion-*-linux-arm64.AppImage");
expect(workflow).toContain("Fusion-*-linux-x64.AppImage");
expect(workflow).toContain("name: fusion-desktop-linux");
expect(workflow).toContain("packages/desktop/dist-electron/latest-linux.yml");
}