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.
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.
There are three ways to get going install GoReleaser:
brew install goreleaser/tap/goreleaser
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git scoop install goreleaser
Check the tap source for more details.
You can use Docker to do simple releases. Currently, the provided docker image does not provide support for snapcraft.
$ docker run --rm --privileged \ -v $PWD:/go/src/github.com/user/repo \ -v /var/run/docker.sock:/var/run/docker.sock \ -w /go/src/github.com/user/repo \ -e GITHUB_TOKEN \ -e DOCKER_USERNAME \ -e DOCKER_PASSWORD \ goreleaser/goreleaser release
Note that the image will almost always have the last stable Go version.
If you need more things, you are encouraged to have your own image. You can always use GoReleaser’s own Dockerfile as an example though.
Download your preferred flavor from the releases page and install manually.
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 setup build
It is recommended to also run
dep ensure to make sure that the dependencies
are in the correct versions.
Last updated by Igor German on September 4, 2018.