Skip to content

Conversation

@offbyone
Copy link
Contributor

@offbyone offbyone commented Jan 11, 2026

This PR introduces comprehensive goreleaser support to replace the custom build-all.sh script, providing automated multi-platform builds with better CI/CD integration.

  • change the default Go version to 1.24 for lint/release tasks
  • add a release.yml workflow to run on tag creation
  • refresh a lot of the Action versions in the build/lint actions
  • add a justfile for common development tasks
  • configure goreleaser
  • update the golangci-lint version to 2.7, with new exclusions to keep the codebase otherwise untouched

Platform support is untouched

@offbyone offbyone force-pushed the push-vymvyxxxrlop branch 2 times, most recently from 7accf57 to 14ac351 Compare January 11, 2026 19:52
@github-advanced-security
Copy link

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.

@offbyone offbyone force-pushed the push-vymvyxxxrlop branch 9 times, most recently from a54a3f8 to 9b5844e Compare January 11, 2026 20:25
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
@offbyone
Copy link
Contributor Author

@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.

@DarthSim
Copy link
Owner

Hey @offbyone!
Yeah, I'm primarily focused on imgproxy right now and, unfortunately, don't have much time for other projects.
I would love to hand over maintenance of Overmind. However, given the many cases of new maintainers injecting malicious code into OSS projects, I can hand over maintenance only to people I can fully trust. Hope for your understanding.

@offbyone
Copy link
Contributor Author

offbyone commented Jan 16, 2026

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.

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.

2 participants