feat(FN-5607): add cross-platform updater feeds for desktop releases

Add multi-platform updater feed configuration for the desktop app, including Windows, Mac, and Linux feed files with a collector, wired into the release and test-release workflows, plus corresponding tests and documentation.

Fusion-Task-Id: FN-5607

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Fusion-Task-Id: FN-5607
This commit is contained in:
gsxdsm
2026-05-27 03:10:21 -07:00
parent a0d30f18f8
commit 9504c31a85
5 changed files with 19 additions and 3 deletions

View File

@@ -41,6 +41,9 @@ describe("electron-builder desktop config", () => {
expect(builderConfig).toMatch(/artifactName:\s*"\$\{productName\}-\$\{version\}-\$\{os\}-\$\{arch\}\.\$\{ext\}"/m);
expect(builderConfig).toMatch(/appId:\s*com\.gsxdsm\.fusion\.desktop/m);
expect(builderConfig).toMatch(/productName:\s*Fusion/m);
expect(builderConfig).toMatch(/publish:\s*[\s\S]*?provider:\s*github/m);
expect(builderConfig).toMatch(/publish:\s*[\s\S]*?owner:\s*gsxdsm/m);
expect(builderConfig).toMatch(/publish:\s*[\s\S]*?repo:\s*fusion/m);
});
it("locks windows signing policy without baked certificate paths", async () => {

View File

@@ -21,16 +21,19 @@ describe("desktop release workflow wiring", () => {
expect(workflow).toContain("runs-on: windows-latest");
expect(workflow).toMatch(/pnpm --filter @fusion\/desktop dist:win|electron-builder --win/);
expect(workflow).toContain("name: fusion-desktop-windows");
expect(workflow).toContain("packages/desktop/dist-electron/latest.yml");
expect(workflow).toContain("build-desktop-macos:");
expect(workflow).toContain("runs-on: macos-latest");
expect(workflow).toMatch(/pnpm --filter @fusion\/desktop dist:mac|electron-builder --mac/);
expect(workflow).toContain("name: fusion-desktop-macos");
expect(workflow).toContain("packages/desktop/dist-electron/latest-mac.yml");
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("name: fusion-desktop-linux");
expect(workflow).toContain("packages/desktop/dist-electron/latest-linux.yml");
}
});
@@ -49,6 +52,7 @@ describe("desktop release workflow wiring", () => {
expect(release).toContain('-name "*.AppImage"');
expect(release).toContain('-name "*.deb"');
expect(release).toContain('-name "*.tar.gz"');
expect(release).toContain('-name "latest*.yml"');
});
it("wires test-release collect job to wait for all desktop build jobs", async () => {
@@ -57,6 +61,7 @@ describe("desktop release workflow wiring", () => {
expect(testRelease).toContain(
"needs: [build-binaries, build-desktop-windows, build-desktop-macos, build-desktop-linux]",
);
expect(testRelease).toContain('-name "latest*.yml"');
});
});