What Changed
Add GoReleaser configuration (.goreleaser.yaml) and a
release CI workflow so that pushing a version tag automatically:
- builds cross-platform binaries for
cmd/vibe-check
(linux/darwin/windows × amd64/arm64);
- embeds build metadata via
-ldflags "-X main.version=... -X main.commit=... -X main.date=...";
- publishes a GitHub Release with generated notes and a
checksums.txt.
Why It Matters
v0.1.0 was tagged and released manually. Two gaps result:
- No pre-built artifacts. There is no
.goreleaser.yaml and no GitHub
Release, so users must install with a Go toolchain
(go install .../cmd/vibe-check@v0.1.0) rather than downloading a binary.
--version is not fully populated on installed binaries. For
module-cache installs, versionString() in cmd/vibe-check/root.go falls
back to runtime/debug.ReadBuildInfo(), which yields the module version but
leaves commit/date as none/unknown. ldflags embedding via GoReleaser
makes all three meaningful for released binaries.
Acceptance Criteria
References
Note: this issue should be labeled build (or ci) once that label exists.
What Changed
Add GoReleaser configuration (
.goreleaser.yaml) and arelease CI workflow so that pushing a version tag automatically:
cmd/vibe-check(linux/darwin/windows × amd64/arm64);
-ldflags "-X main.version=... -X main.commit=... -X main.date=...";checksums.txt.Why It Matters
v0.1.0was tagged and released manually. Two gaps result:.goreleaser.yamland no GitHubRelease, so users must install with a Go toolchain
(
go install .../cmd/vibe-check@v0.1.0) rather than downloading a binary.--versionis not fully populated on installed binaries. Formodule-cache installs,
versionString()incmd/vibe-check/root.gofallsback to
runtime/debug.ReadBuildInfo(), which yields the module version butleaves
commit/dateasnone/unknown. ldflags embedding via GoReleasermakes all three meaningful for released binaries.
Acceptance Criteria
.goreleaser.yamlbuildscmd/vibe-checkacross the platform matrix.main.version,main.commit, andmain.date.v*), uses SHA-pinned actions, andsets least-privilege
permissions(contents: writeonly for the release job).vibe-check --versionon a released binary reports real version/commit/date.References
openspec/changes/go-analyze/proposal.md./uf.review-council(SRE + Herald personas) during review of PR feat: add Go adapter and vibe-check analyze CLI command #21.cmd/vibe-check/root.go(versionString()).