ci(desktop): build-windows on native Windows runner (bobsminibuilder) #15

Merged
mohlec merged 1 commit from ci/windows-native-runner into slash/main 2026-07-15 20:24:22 +00:00
Owner

Retires the Wine cross-build. build-windows now runs on a dedicated Windows 11 Pro act_runner (bobsminibuilder) with real MSVC — same pattern as build-macos on ncwmac. npm ci does a genuine native compile of ALL modules (registry-js + windows-focus-assist), so windows-focus-assist / Focus-Assist DND now gets a real binary too, not just a crash-guard.

Runner setup (bobsminibuilder):

  • Node 24.18.0, VS2022 BuildTools + VCTools + ATL/ATLMFC workload (windows-focus-assist needs atlbase.h, not in the default VCTools set), Python 3.14 (+ a python3.exe alias — check-branding.sh calls python3 explicitly, which otherwise hits the broken Windows Store app-execution-alias stub), Git for Windows (added to machine PATH for bash).
  • act_runner cross-compiled from source (code.forgejo.org/forgejo/runner v12.10.2) — Forgejo ships no official Windows binary.
  • Registered + running as a Windows Scheduled Task (S4U logon, starts at boot, restarts on failure).

Verified: two failed build iterations while bringing the runner up (missing ATL, broken python3 alias) — both root-caused and fixed on the runner itself. Final run: all 4 jobs (linux/windows/macos-stub) succeeded on this branch.

Checkout + artifact publish switched to the public API (this runner is remote, not git-server-local) — matches build-macos's existing pattern.

Retires the Wine cross-build. `build-windows` now runs on a dedicated Windows 11 Pro act_runner (bobsminibuilder) with real MSVC — same pattern as `build-macos` on ncwmac. `npm ci` does a genuine native compile of ALL modules (registry-js + windows-focus-assist), so windows-focus-assist / Focus-Assist DND now gets a real binary too, not just a crash-guard. **Runner setup (bobsminibuilder):** - Node 24.18.0, VS2022 BuildTools + VCTools + **ATL/ATLMFC** workload (windows-focus-assist needs `atlbase.h`, not in the default VCTools set), Python 3.14 (+ a `python3.exe` alias — check-branding.sh calls `python3` explicitly, which otherwise hits the broken Windows Store app-execution-alias stub), Git for Windows (added to machine PATH for `bash`). - act_runner cross-compiled from source (`code.forgejo.org/forgejo/runner` v12.10.2) — Forgejo ships no official Windows binary. - Registered + running as a Windows Scheduled Task (S4U logon, starts at boot, restarts on failure). **Verified:** two failed build iterations while bringing the runner up (missing ATL, broken python3 alias) — both root-caused and fixed on the runner itself. Final run: all 4 jobs (linux/windows/macos-stub) succeeded on this branch. Checkout + artifact publish switched to the public API (this runner is remote, not git-server-local) — matches `build-macos`'s existing pattern.
ci(desktop): build-windows on native Windows runner (bobsminibuilder)
Some checks failed
Build Slash Desktop / build-macos (pull_request) Has been skipped
Build Slash Desktop / build-windows (pull_request) Failing after 11s
Build Slash Desktop / build-linux (pull_request) Successful in 6m33s
820146f9a4
Retires the Wine cross-build workaround. build-windows now runs on a dedicated
Windows 11 Pro runner (bobsminibuilder, act_runner registered 2026-07-15,
labels: windows, windows-amd64) with real MSVC (VS2022 BuildTools + VCTools
workload) — mirrors how build-macos already runs on ncwmac.

- npm ci triggers a REAL compile of native modules via @electron/rebuild;
  windows-focus-assist (previously crash-guarded, no upstream prebuild) now
  gets a genuine Windows binary, same as registry-js already had via its
  N-API prebuild. Removed the prebuild-fetch step -- no longer needed.
- Checkout + artifact publishing switched from the git-server-local paths
  (http://127.0.0.1:3000, /var/lib/forgejo/data/plugin-releases) to the public
  API (https://git.ncwcom.com) since this runner is remote, not co-located
  with the git server -- same pattern build-macos already uses.
- defaults.run.shell: bash (Git for Windows bash.exe, now on bobsminibuilder's
  machine PATH) so the existing posix-shell step bodies are reused unchanged.

Verified end-to-end on bobsminibuilder before this PR: cross-compiled+installed
act_runner from source (no official Windows binary from Forgejo), confirmed
registered+idle, confirmed node/npm/git/curl/bash all resolve for the runner's
actual process context (fresh scheduled-task launch, not just an interactive
shell).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mohlec merged commit 5058f5d965 into slash/main 2026-07-15 20:24:22 +00:00
mohlec deleted branch ci/windows-native-runner 2026-07-15 20:24:23 +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!15
No description provided.