Creating Go Application Releases with GoReleaser
A few weeks ago, I set out to upgrade the version of Go (1.6 to 1.15) used to build an old command-line utility I developed, named Heimdall. Heimdall provides a way to wrap an executable program inside of an exclusive lock provided by a central PostgreSQL instance via
Now, Heimdall is nice little utility and all (if you’re intrigued, check out the
README), but the most interesting part of the upgrade process came after I got everything working and started to think about how to create a new release. That’s when I came across GoReleaser.
GoReleaser is a release automation tool specifically for Go projects. With a few bits of YAML configuration, GoReleaser provided me with:
- Hooks into the Go module system for managing library dependencies
- The ability to easily produce a set of build artifacts for multiple operating systems and computer architectures
- Checksums for each of the build artifacts
- Easy integration with GitHub Actions to automate publishing releases on tagged commits
If you are responsible for Go applications that are in need of a uniform release process, I find it really hard to beat GoReleaser.