Introduction

GoReleaser is a release automation tool for Go projects, the goal is to simplify the build, release and publish steps while providing variant customization options for all steps.

GoReleaser is built for CI tools; you only need to download and execute it in your build script. You can customize your release process by creating a .goreleaser.yml file.

The idea started with a simple shell script, but it quickly became more complex and I also wanted to publish binaries via Homebrew taps, which would have made the script even more hacky, so I let go of that and rewrote the whole thing in Go.

Installing Goreleaser

There are three ways to get going install GoReleaser:

Using homebrew

brew install goreleaser/tap/goreleaser

Using Scoop

scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
scoop install goreleaser

Check the tap source for more details.

Manually

Download your preferred flavor from the releases page and install manually.

Using go get

Note: this method requires Go 1.10+.

$ go get -d github.com/goreleaser/goreleaser
$ cd $GOPATH/src/github.com/goreleaser/goreleaser
$ dep ensure -vendor-only
$ make build

It is recommended to also run dep ensure to make sure that the dependencies are in the correct versions.