You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add comprehensive goreleaser support for multi-platform builds
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
0 commit comments