Skip to content

ci: add Windows build to release workflow (NSIS .exe + MSI .msi)#11

Open
LocallyInsaneDB wants to merge 1 commit into
GRVYDEV:mainfrom
LocallyInsaneDB:ci/windows-build
Open

ci: add Windows build to release workflow (NSIS .exe + MSI .msi)#11
LocallyInsaneDB wants to merge 1 commit into
GRVYDEV:mainfrom
LocallyInsaneDB:ci/windows-build

Conversation

@LocallyInsaneDB
Copy link
Copy Markdown

Summary

Adds a build-windows job to .github/workflows/release.yml so tagged releases automatically publish Windows installers alongside the existing macOS and Linux artifacts. No source changes — bundle.targets: "all" in src-tauri/tauri.conf.json already covers Windows targets; the job only needs to exist.

What ships per release after this

Asset Produced by
Marky_<version>_x64-setup.exe NSIS bundler (default Tauri 2 installer on Windows)
Marky_<version>_x64.msi WiX MSI bundler

Naming follows the same Marky_<version>_<arch> convention as the existing Linux Marky_<version>_amd64.AppImage and macOS Marky_<version>_aarch64.tar.gz assets.

Implementation

  • Runs on windows-latest — the GitHub-hosted image ships with MSVC 2022 Build Tools, the Windows SDK, and the WebView2 runtime, so no extra system-deps step is needed (unlike the Linux job).
  • Mirrors the Linux job's step structure: Rust → pnpm → Node → pnpm installpnpm tauri build → upload artifacts via gh release upload.
  • Upload step uses shell: bash (Git Bash on the runner) so the find / cp / if [ -n ... ] pattern matches the Linux job verbatim — easier to maintain.
  • WiX 3 is downloaded on demand by Tauri's bundler at build time; no extra setup step required.
  • amd64 only — arm64 Windows runners (windows-11-arm) exist but are less stable; happy to add a matrix entry in a follow-up if you want it.

Why now

The Marky README lists Homebrew (macOS) and .deb (Ubuntu/Debian) install paths but no Windows entry. Forks/issues don't currently mention Windows, but the repo has a Tauri 2 setup that's a one-job addition away from full three-OS parity. I cross-compiled a working .exe locally via cargo-xwin from WSL to confirm the source tree is Windows-clean — this PR just adds the CI job to do the same thing the supported way on a native Windows runner.

Test plan

  • CI: tag a test release (e.g. v0.1.3-test1) on a branch and confirm both *-setup.exe and *.msi appear in the GitHub release alongside the existing macOS/Linux assets.
  • Install the .exe on a clean Windows 10/11 VM; launch via Start menu; open a .md file via the file picker.
  • Install the .msi on the same VM (after uninstalling the NSIS build); confirm same behaviour.
  • Confirm the existing macOS and Linux jobs still pass unchanged (the only diff to those jobs in this PR is the appended build-windows job at the bottom of the file).

Happy to iterate on artifact naming, add arm64, switch to tauri-apps/tauri-action for consistency with the macOS job, or anything else you'd prefer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant