feat: add Windows builds, Homebrew cask, and APT repository#278
feat: add Windows builds, Homebrew cask, and APT repository#278BrianLeishman wants to merge 2 commits into
Conversation
Add Windows x86_64 (NSIS installer) to the release matrix, with zpl.dll bundling via TAURI_CONFIG injection and sidecar placeholders. Add automated Homebrew cask updates (update-homebrew-cask.yml) that compute SHA256 hashes and push to the homebrew-marlin tap on release. Add APT repository workflow (apt-repo.yml) that builds a signed apt repo with reprepro and deploys to GitHub Pages on release. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly expands the application's distribution capabilities by introducing automated build and packaging processes for Windows, Homebrew, and APT. It enables broader platform support and streamlines the release pipeline for these new targets, alongside necessary build system adjustments to accommodate platform-specific library handling and security enhancements for GitHub Actions. Highlights
Changelog
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces significant enhancements to the build and distribution process by adding support for Windows builds, and laying the groundwork for Homebrew cask and APT repository automation. The changes to .gitignore, src-tauri/build.rs, and src-tauri/tauri.conf.json are well-aligned with this goal. The logic for handling the zpl.dll on Windows in the build script is correct. I have one suggestion in src-tauri/build.rs to improve error handling for better build-time diagnostics, which will enhance maintainability.
Summary
windows-latest/x86_64-pc-windows-msvctarget to both release and dry-run CI jobs, producing NSIS.exeinstaller + updater. Handleszpl.dllbundling viaTAURI_CONFIGenv var injection and sidecar placeholders with.exeextension.update-homebrew-cask.ymlworkflow triggers on release, computes SHA256 of both arm64/x86_64 DMGs, and pushes an updated cask to theStirlingMarketingGroup/homebrew-marlintap repo.apt-repo.ymlworkflow builds a GPG-signed apt repo withrepreproand deploys to GitHub Pages. Sources old packages from GitHub Releases (immutable) for provenance safety.build.rsto copyzpl.dlltosrc-tauri/root on Windows (next to exe for DLL loader), while macOS/Linux continue usingsrc-tauri/lib/.getsentry/action-github-app-tokenusages pinned to commit SHA. Third-party action tags not used as sole reference.Manual setup required
Homebrew
gh repo create StirlingMarketingGroup/homebrew-marlin --publiccontents: writeon the tap repoAPT
gpg --batch --gen-key(see workflow comments)APT_GPG_PRIVATE_KEYrepo secretWindows code signing (optional)
Not included — NSIS installer works unsigned but SmartScreen will warn. Can add EV/OV cert later.
Test plan
StirlingMarketingGroup/homebrew-marlinrepo withCasks/directorybrew install --cask StirlingMarketingGroup/marlin/marlinon macOSzpl.dllloads correctly🤖 Generated with Claude Code