golang 一键多平台打包 goreleaser

青苗 青苗 | 616 | 2022-10-22

e493f48770de429ca58e83f723deea2e.png

golang 一键多平台打包 goreleaser

goreleaser 是一个自动化打包工具, 自动初始化编译脚本, 支持对接CI/CD 等平台,一行命令轻松实现快速交叉编译跨平台打包。

goreleaser项目官网

goreleaser源码仓库

安装使用

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
文章标签: Go
推荐指数:

真诚点赞 诚不我欺~

golang 一键多平台打包 goreleaser

点赞 收藏 评论

关于作者

青苗
青苗

青苗幼儿园园长

等级 LV5

粉丝 20

获赞 47

经验 1182