release: add goreleaser config + release workflow#104
Merged
Conversation
Mirror the qube setup so tagged releases publish: - linux + darwin binaries (CGO_ENABLED=0, version from -ldflags -X main.version=, matching cmd/myschema/main.go's existing var) - Homebrew cask via the existing winebarrel/homebrew-myschema tap. Post-install hook runs xattr -dr com.apple.quarantine on macOS so the unsigned binary opens without Gatekeeper friction. - nfpms artefacts (.apk / .deb / .rpm) for Linux package managers, filename `myschema_<ver>_<arch>` matching qube's convention. The release workflow fires on `v*.*.*` tags, uses the same pinned SHAs qube uses for actions/checkout, actions/setup-go, and goreleaser-action, and pushes via GORELEASER_GITHUB_TOKEN secret (needs to be configured on the repo). TODO.md drops the corresponding "Low" entry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #104 +/- ##
=======================================
Coverage 86.86% 86.86%
=======================================
Files 30 30
Lines 3357 3357
=======================================
Hits 2916 2916
Misses 270 270
Partials 171 171 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR adds release automation so tagging v*.*.* can publish GitHub release artifacts (binaries + packages) using GoReleaser, and removes the corresponding TODO item.
Changes:
- Add
.goreleaser.ymlto buildcmd/myschema, stamp version via-ldflags, and publish Homebrew cask + Linux packages (apk/deb/rpm). - Add a GitHub Actions
releaseworkflow to run GoReleaser on version tags. - Update
TODO.mdto remove the GoReleaser config item.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| TODO.md | Removes the now-implemented GoReleaser item from the Low-priority TODO list. |
| .goreleaser.yml | Introduces GoReleaser configuration for binaries, checksums, Homebrew cask publishing, and nfpm packaging. |
| .github/workflows/release.yml | Adds a tag-triggered workflow to run GoReleaser and publish release artifacts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1 task
winebarrel
added a commit
that referenced
this pull request
May 6, 2026
Mirror pistachio's Installation section: a Homebrew one-liner (via the winebarrel/homebrew-myschema tap added by the goreleaser workflow in PR #104) and a "download from Releases" fallback. Slot between the demo image and the Usage section so new readers see install before usage examples. The Homebrew tap will get its first formula on the first v*.*.* tag — the install command is documented here in advance so the README is ready when releases start. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Set up release plumbing so a `v*..` tag publishes binaries + packages. Mirrors the qube setup.
Changes
`.goreleaser.yml`
`.github/workflows/release.yml`
Fires on `v*..` tags. Uses the same pinned SHAs as qube for `actions/checkout`, `actions/setup-go`, and `goreleaser/goreleaser-action`. Pushes via the `GORELEASER_GITHUB_TOKEN` secret — needs to be configured on the repo before the first release.
`TODO.md`
Drops the corresponding `.goreleaser.yml` entry from the Low section.
Test plan
🤖 Generated with Claude Code