feat(ci): add goreleaser for multi-platform binary releases#117
feat(ci): add goreleaser for multi-platform binary releases#117
Conversation
Publish go-money-server and go-money-mcp-client for linux/darwin amd64+arm64 and windows amd64 on every release, alongside existing docker images. - .goreleaser.yaml with per-binary ldflags (boilerplate.version for server, main.version for mcp-client) and per-id archives - workflow switches version job from paulhatch/semantic-version to go-semantic-release so conventional commits auto-tag; docker jobs now gated on published==true - mcp-client gains -version flag and $GOMONEY_TOKEN env fallback - README expanded: MCP integration section with client config snippet and tool table, importers, binary releases - docs/mcp/client-setup.md: stdio bridge setup, flags, Claude Desktop/Code config, troubleshooting
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #117 +/- ##
=======================================
Coverage 86.80% 86.80%
=======================================
Files 86 86
Lines 7155 7155
=======================================
Hits 6211 6211
Misses 717 717
Partials 227 227
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Code Review
This pull request introduces automated release management using GoReleaser, configuring builds for the server and MCP client across multiple architectures. The mcp-client has been enhanced with versioning support and the ability to read service tokens from the GOMONEY_TOKEN environment variable. Additionally, the documentation has been significantly expanded to include a detailed MCP client setup guide, updated installation instructions, and a comprehensive overview of the AI agent integration features. I have no feedback to provide as there were no review comments.
Summary
go-money-serverandgo-money-mcp-clientas standalone binaries for linux/darwin (amd64+arm64) and windows (amd64) via goreleaser, attached to every GitHub Release alongside the existing docker images.paulhatch/semantic-versionforgo-semantic-release/actionso conventional-commit messages auto-bump tags (feat → minor, fix/chore/perf/refactor → patch, docs/ci/style/test/build → skip). Downstream docker + helm jobs now gate onneeds.version.outputs.published == 'true'on master.docs/mcp/client-setup.md) — the stdio↔HTTP bridge, flags,$GOMONEY_TOKENfallback, Claude Desktop / Claude Code config snippet, troubleshooting.cmd/mcp-clientgains a-versionflag and falls back to$GOMONEY_TOKENwhen-tokenis unset, so secrets can stay out of shell history.Notable details
-X github.com/ft-t/go-money/pkg/boilerplate.version/commitSHAfor server,-X main.version/commitSHAfor mcp-client.go-semantic-releasedefault analyzer will still bump major onBREAKING CHANGE:footers orfeat!:syntax. Conventional commits without!:never bump major — matches current workflow.Test plan
make lint— 0 issuesgo build ./...cleangoreleaser checkpassesmake goreleaser-snapshotproduces 10 archives;go-money-mcp-client -versionprints injected version + commit SHAgo-semantic-releasetags,goreleaserjob uploads binaries to the release, docker flow still passes-server+$GOMONEY_TOKENwiring works against a live MCP server