feat(ci): cross-compile and publish a Windows desktop build #63
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/VAPP-56-desktop-windows-build"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds a Windows x86_64 desktop build of
vervain-appto CI, built and published the same way the Linux desktop build is. Resolves VAPP-56.ci-build/Dockerfile.desktop-windows: extends the sharedrust-builder-glibcimage with mingw-w64 and thex86_64-pc-windows-gnutarget, primes the cross-compiled dep graph, builds Tailwind, then runsdx build --release --platform windows --target x86_64-pc-windows-gnuand zips the dx app output (exe + asset bundle).ci-build/win-gnu-link.sh: linker shim (see note below)..forgejo/workflows/build-desktop-windows.yml: a copy ofbuild-desktop-linux.ymlwith the samerelease/main/v*triggers, the sameRUNS_ON_OPENSUSE_BASE_LATESTrunner, the same GOV-13 version-from-trigger logic, and the same Generic Packages upload (DELETE-then-PUT, immutablevX.Y.Zvs movinglatestpaths). Artifact name:vervain-app-<version>-windows-x86_64.zip.Why a linker shim
dx 0.7 always injects MSVC-style linker directives for Windows targets -
/SUBSYSTEM:<CONSOLE|WINDOWS>and/ENTRY:mainCRTStartup- regardless of--windows-subsystemor the gnu triple. The mingw GNU linker cannot parse those and fails withcannot find /SUBSYSTEM:WINDOWS. The shim is wired in viaCARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER, rewrites those two directives to GNU ld syntax (-Wl,--subsystem,...,-Wl,--entry,...), and forwards everything else to mingw gcc. Default subsystem stays WINDOWS, so the result is a GUI app with no console window.Decisions (from issue triage)
.exe.Validation
Clean
docker buildofci-build/Dockerfile.desktop-windowson a single compile pass producedvervain-app-windows-x86_64.zip(13 MB) containingvervain-app.exereported byfileasPE32+ executable for MS Windows 5.02 (GUI), x86-64, plus the dxassets/bundle. All deps (wry, webview2-com, tao, windows-*) compiled clean forx86_64-pc-windows-gnu.No Rust/Cargo/Dioxus.toml changes, so the existing Linux desktop, web/OCI, and check workflows are untouched.
Assumption to confirm at runtime
The
.exeis expected to launch on a Windows 10/11 x86_64 with the Evergreen WebView2 runtime present (no WebView2 bootstrapper is bundled). Not yet smoke-tested on a real Windows host.