Publish a Windows build - #18
Open
mostlydev wants to merge 2 commits into
Open
Conversation
gnit had no Windows release asset, so there was no supported way to install it on a Windows machine. That matters wherever the build hosts are Windows: the workspace pin cannot be inspected or materialized on the machine that actually compiles. Adds x86_64-pc-windows-msvc to the release matrix, packaging gnit.exe, and teaches install.sh to recognise the MINGW/MSYS/CYGWIN uname that Git Bash reports. Git Bash is the only shell present on a stock Windows dev box, so it is how the installer gets run there at all. The source needed no changes: symlink_dir already has a #[cfg(windows)] arm and sigpipe::reset() is a no-op off Unix.
GITHUB_REF_NAME is the branch on workflow_dispatch, so a branch containing a slash produced dist/gnit-feat/windows-release-... and Package failed on every target with no such directory. Tag builds were never affected, which is why it went unnoticed; it means workflow_dispatch could not produce artifacts from any branch using the conventional prefix/name form.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
gnit publishes no Windows release asset, so there is no supported way to install it on a Windows machine.
install.shrejects the platform outright and the release matrix builds only linux-x86_64 and the two darwin targets.That matters wherever the build hosts are Windows. On our DICOM Printer 2 build host,
where.exe gnitcomes back empty — so the workspace pin cannot be inspected or materialized on the machine that actually compiles the product. A build gate there had to be written against plain git instead, and the remediation it prints (gnit checkout <pin>) names a command the user cannot run.What
release.yml: addswindows-latest/x86_64-pc-windows-msvcto the matrix. The Package step already runs undershell: bash, which Windows runners provide, so it needed only an.exesuffix branch.install.sh: recognises theMINGW*/MSYS*/CYGWIN*uname that Git Bash reports, installsgnit.exe, skips the Unix-eranitlegacy cleanup, and adds asetxhint so the install directory reaches cmd.exe and PowerShell rather than just the bash session.No source changes were needed.
symlink_diralready has a#[cfg(windows)]arm usingstd::os::windows::fs::symlink_dir, andsigpipe::reset()compiles to a no-op off Unix. Dependencies are all cross-platform.Notes for review
gnit skills installmay fail on a default Windows box. That is pre-existing and out of scope here; worth a follow-up if skills matter on Windows..tar.gzrather than.zipfor consistency, so the existingchecksums.txtstep andinstall.shdownload path work unchanged.workflow_dispatchon this branch before opening.