GoReleaser是Go项目的发布自动化工具,目标是简化构建,release和发布步骤,同时为所有步骤提供适当的自定义选项.
GoReleaser是为CI工具而构建的;你只需要在您的构建脚本中下载并执行它。您可以通过定制一个关于你的发布过程的.goreleaser.yml
文件.
这个想法始于一个简单的shell脚本,但它很快变得更加复杂,我也希望通过Homebrew taps
发布二进制文件,这会使脚本变得更加hacky,所以我放弃了它,并在Go中重写了整个内容.
有三种方法可以安装GoReleaser:
brew install goreleaser/tap/goreleaser
snap install goreleaser
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
scoop install goreleaser
查看tap源,了解更多细节.
您可以使用Docker来执行简单的发布.目前,提供的docker镜像不支持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
请注意,镜像几乎总是最后一个稳定的Go版本.
如果您需要更多东西,我们鼓励您拥有自己的镜像。你可以使用GoReleaser自身的Dockerfile作为示例.
从发布页面下载您喜欢的味道,并手动安装.
注意:此方法需要Go 1.10+.
$ go get -d github.com/goreleaser/goreleaser
$ cd $GOPATH/src/github.com/goreleaser/goreleaser
$ dep ensure -vendor-only
$ make setup build
建议也运行下dep ensure
,确保依赖项的版本正确.