Skip to content

Migrate build/release pipeline to goreleaser#55

Merged
mapitman merged 1 commit into
mainfrom
migrate-to-goreleaser
Jul 11, 2026
Merged

Migrate build/release pipeline to goreleaser#55
mapitman merged 1 commit into
mainfrom
migrate-to-goreleaser

Conversation

@mapitman

Copy link
Copy Markdown
Owner

Summary

  • Replaces the hand-rolled justfile cross-compile + dpkg-deb packaging with goreleaser (.goreleaser.yaml), which also produces .rpm packages via its built-in nfpm integration.
  • justfile becomes a thin wrapper around goreleaser (build, release-snapshot, release, check); CI workflows call just build/just release and no longer need the previous-tag lookup + softprops/action-gh-release dance since goreleaser reads the version straight from the pushed git tag.
  • Removes the now-redundant control file (superseded by the nfpms: block).
  • Snap packaging is untouched — goreleaser doesn't build snaps, so just snap still calls snapcraft directly.
  • Updates CLAUDE.md to describe the new pipeline.
  • Updates README.md: adds an RPM install section, notes Windows/FreeBSD binaries are published too, and fixes stale go get install instructions to go install.

Test plan

  • just check — validates .goreleaser.yaml
  • just build — cross-compiles all 7 targets (linux amd64/arm64/386, windows amd64, darwin amd64/arm64, freebsd amd64), matching the old justfile matrix
  • just release-snapshot — produces archives + .deb/.rpm (linux amd64/arm64 only) in dist/
  • Verified .deb contents (dpkg --contents) place the binary at /usr/bin/mdview and man page at /usr/share/man/man1/mdview.1
  • Verified version stamping via -ldflags -X main.appVersion=... works (mdview -v)
  • Real tag-triggered release via release.yml (can't test until merged + tagged)

Replaces the hand-rolled justfile cross-compile/dpkg-deb packaging with
goreleaser (.goreleaser.yaml), which now also produces .rpm packages via
nfpm for free. justfile becomes a thin wrapper around goreleaser, CI
workflows call it directly instead of the previous-tag/softprops-release
dance, and the now-redundant control file is removed. Snap packaging is
left untouched since goreleaser doesn't build snaps.

Also updates the README with an RPM install section, notes that Windows/
FreeBSD binaries are published too, and fixes the stale `go get` install
instructions to `go install`.
@mapitman mapitman merged commit 5972ab8 into main Jul 11, 2026
1 check passed
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