ci: build the windows targets goreleaser already ships - #44
Merged
Merged
Conversation
.goreleaser.yaml releases linux, darwin and windows on amd64 and arm64, but the CI build matrix and scripts/gate.sh both stopped at linux and darwin. A Windows-breaking change was therefore only discoverable at tag time, by the release job — the same "green somewhere else hid a break" failure mode gate.sh exists to prevent. Cross-compiling costs one more job. Also ignore /pgbot.exe: `go build ./cmd/pgbot` in the repo root emits pgbot.exe on Windows, which /pgbot does not match, so every Windows contributor starts with a dirty tree — and gate.sh refuses to gate a dirty tree.
lofoneh
force-pushed
the
ci/windows-build-parity
branch
from
September 9, 2026 09:35
aea0217 to
abd4cca
Compare
Contributor
|
tnx! good work |
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.
What and why
.goreleaser.yamlships[linux, darwin, windows] × [amd64, arm64], but the CIbuild matrix and
scripts/gate.shboth stop at linux and darwin — so no Windowstarget compiles anywhere until the release job runs at tag time. That's the same
"green somewhere else hid a break" failure mode
gate.shexists to prevent.gate.shnow build every released target — 6 instead of 4, stillCGO_ENABLED=0cross-compiles onubuntu-latest(no Windows runner minutes)..gitignoregains/pgbot.exe: a rootgo build ./cmd/pgbotemits that name onWindows,
/pgbotdoesn't match it, so Windows contributors start with a dirtytree — which
gate.shthen refuses to gate.No change to the binary's behavior.
Verification
windows/amd64, Go 1.27.1, golangci-lint 2.13.2, rebased on current
main:Checklist
scripts/gate.shpasses (builds HEAD, not just the working tree)model.Context/--jsonchange, no new finding.