CI: add build-windows job (Wine cross-build, no Windows machine needed) #3

Merged
mohlec merged 1 commit from ci/build-windows into slash/main 2026-07-07 14:27:47 +00:00
Owner

Adds automated Windows builds. Unlike macOS/iOS, electron-builder can cross-compile a Windows target from Linux via Wine (needed for rcedit + makensis, even unsigned) — no Windows runner or code-signing setup required.

  • Installed wine64 + wine32:i386 on the existing native CI runner (git.ncwcom.com)
  • New build-windows job mirrors build-linux exactly: branding-audit gate, npm ci/build, package, save artifacts, attach to the desktop-latest rolling release
  • Produces NSIS installer + portable .exe (unsigned)
  • Attach step polls for the release build-linux creates in the same trigger, avoiding a race between the two jobs

macOS still needs a real runner (none registered) — unaffected, still workflow_dispatch-only.

Adds automated Windows builds. Unlike macOS/iOS, electron-builder can cross-compile a Windows target from Linux via Wine (needed for rcedit + makensis, even unsigned) — no Windows runner or code-signing setup required. - Installed wine64 + wine32:i386 on the existing native CI runner (git.ncwcom.com) - New build-windows job mirrors build-linux exactly: branding-audit gate, npm ci/build, package, save artifacts, attach to the desktop-latest rolling release - Produces NSIS installer + portable .exe (unsigned) - Attach step polls for the release build-linux creates in the same trigger, avoiding a race between the two jobs macOS still needs a real runner (none registered) — unaffected, still workflow_dispatch-only.
ci: add build-windows job (electron-builder cross-build via Wine)
Some checks failed
Build Slash Desktop / build-macos (pull_request) Has been skipped
Build Slash Desktop / build-windows (pull_request) Failing after 1m27s
Build Slash Desktop / build-linux (pull_request) Successful in 5m52s
3d91c14d45
Unlike macOS/iOS, a Windows target doesn't need real Windows hardware —
electron-builder shells out to Wine to run the Windows-only tools it needs
(rcedit for icon/version resources, makensis for the NSIS installer) even
when producing an unsigned build. Installed wine64 + wine32:i386 (Debian
multiarch, ~10 min due to the i386 dependency set) on the existing native
CI runner on git.ncwcom.com — no new runner or signer required.

- New build-windows job mirrors build-linux's structure exactly: checkout,
  branding-audit gate, npm ci, npm run build, package, save artifacts,
  attach to the desktop-latest rolling release
- Produces NSIS installer + portable .exe, unsigned (CSC_IDENTITY_AUTO_DISCOVERY
  disabled to prevent electron-builder from searching for a signing cert
  that doesn't exist)
- Attach step polls briefly for the desktop-latest release rather than
  recreating it, since build-linux (same trigger) also creates/refreshes it —
  avoids a race between the two jobs
- Updated the build-macos comment: macOS still needs a real runner (none
  registered), Windows no longer does
mohlec merged commit 9803d5ee2d into slash/main 2026-07-07 14:27:47 +00:00
mohlec deleted branch ci/build-windows 2026-07-07 14:27:47 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
slash/slash-desktop!3
No description provided.