-
Notifications
You must be signed in to change notification settings - Fork 92
Add comprehensive goreleaser support #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
7accf57 to
14ac351
Compare
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
a54a3f8 to
9b5844e
Compare
This change replaces the custom build-all.sh script with a full goreleaser integration that provides: ## What's Added ### Configuration - : Configures builds for macOS and Linux (arm64 and amd64) with proper archiving, checksums, and changelog generation - : Provides convenient commands for common release tasks (build, test, snapshot, clean, etc.) ### Version Management - Removes hardcoded version from main.go (was "2.5.1") - Uses goreleaser's ldflags injection for version from git tags - Fallback to "dev" version when building locally ### CI/CD Integration - Updates : Adds goreleaser snapshot builds on PRs with artifact uploads - Adds : Automates releases when tags are pushed ## Benefits - **Tag-based versioning**: Version is automatically derived from git tags - **Snapshot builds**: Test releases locally or in CI without creating actual releases - **Simplified workflow**: Single command for testing builds - **Better CI feedback**: PR builds now validate the full release process - **Automated releases**: Push a tag, get a GitHub release with all platform binaries ## Migration Notes - The build-all.sh script is now superseded but kept for backward compatibility - Existing release process: Create and push a git tag (e.g., v2.5.2) - For local testing: Run to create test builds in ./dist/ ## Platform Support Currently building for: - macOS (darwin): amd64, arm64 - Linux: amd64, arm64 FreeBSD builds from build-all.sh can be added if needed by extending .goreleaser.yml
9b5844e to
dcd1a0a
Compare
|
@DarthSim IIRC you indicated you were not really focused on this; would you be interested in handing over maintainership of it? I am happy to release 2.6.0 and help out with it. |
|
Hey @offbyone! |
|
I understand that completely! I'd be cautious too. If it helps, I'm sort of motivated by work a bit -- I currently work at GitHub, and we use overmind for some of our development -- so I'd love to know how I can sell you on my bona fides. I guess in the meantime, would you mind having a look at the release options here? This PR should make it pretty easy to build a release of the binary, at least, and the feature I'm waiting for (#194) would be easier to get out. |
This PR introduces comprehensive goreleaser support to replace the custom
build-all.shscript, providing automated multi-platform builds with better CI/CD integration.release.ymlworkflow to run on tag creationPlatform support is untouched