golang 一键多平台打包 goreleaser
青苗 | 616 |
2022-10-22
golang 一键多平台打包 goreleaser
goreleaser
是一个自动化打包工具, 自动初始化编译脚本, 支持对接CI/CD 等平台,一行命令轻松实现快速交叉编译跨平台打包。
安装使用
https://goreleaser.com/install/
本文采用命令行 go install github.com/goreleaser/goreleaser@latest
初始化编译脚本
执行命令 goreleaser init
会在项目根目录生成文件 .goreleaser.yaml
原内容做如下调整, 注释不需要的 hooks 部分执行命令,新增
project_name
项目名配置
before:
hooks:
# - go mod tidy
# - go generate ./...
project_name: testDemo
编译打包
执行命令 goreleaser --snapshot --skip-publish --rm-dist
这是发布快照包
其它命令:goreleaser release
最后 dist
目录下生成各个平台的可执行文件和源码包。
发布 Github
举例发布
v1.0.0
版本,创建一个tag
然后push
执行发布命令,最后在github
仓库可以看到tag
最新发布版本。
export GITHUB_TOKEN="YOUR_GH_TOKEN"
# or
export GITLAB_TOKEN="YOUR_GL_TOKEN"
git tag -a v1.0.0 -m "发布版本v1.0.0的描述"
git push origin v1.0.0
goreleaser release
推荐指数:
真诚点赞 诚不我欺~