Go 程序项目的自动化发布工具,简单的发布命令帮助我们省去大量的重复工作。
MacOs:
brew install goreleaser/tap/goreleaser
源码编译:
git clone https://github.com/goreleaser/goreleaser
cd goreleaser
go get ./...
go build -o goreleaser .
./goreleaser --version
在go项目下运行以下命令,生成.goreleaser.yml
文件:
goreleaser init
生成文件后,自行配置,相信你能看的懂。
goreleaser check
使用本地环境构建
goreleaser build --single-target
token
必须至少包含 write:package
权限,才能上传到发布资源中。
从github生成token,写入文件:
mkdir ~/.config/goreleaser
vim ~/.config/goreleaser/github_token
或者直接在终端导入环境配置:
export GITHUB_TOKEN="YOUR_GITHUB_TOKEN"
git tag v0.1.0 -m "release v0.1.0"
git push origin v0.1.0
goreleaser --clean
# 跳过 git 修改验证
goreleaser build --skip-validate --clean
如果目前还不想打 tag,可以基于最近的一次提交 直接使用一下 gorelease
命令:
goreleaser build --snapshot
如果你想在真实的发布之前做发布测试,你可以尝试 dry run
。
使用如下命令,只会编译当前项目,可以验证项目是否存储编译错误。
goreleaser build
使用 --skip-publish
命令标识来跳过发布到远端。
goreleaser release --skip-publish
goreleaser release --snapshot --skip-publish --clean
条件:
·goreleaser.yml
文件git
目录SemVer-compatible
的版本命名步骤:
步骤可以通过命令标识 --skip-{step_name}
来跳过,如果当中某步骤失败,之后的步骤将不会运行。
很遗憾,如果你的 Go 程序项目需要使用到 CGO 的跨平台编译,Docker 镜像是不支持的,并且你的配置将不会看到 clean
。
也许这里可以帮助到你:Cross-compiling Go with CGO - GoReleaser