迫于尝试给一个 Go 项目贡献打包跨平台 Docker 镜像花了两个小时没搞通,于是把整个过程捋了一遍,写了一个演示如何使用 GitHub Actions 将一个 Golang 项目打包成多平台的二进制文件并发布到 GitHub Releases 和 DockerHub 的例子。
不得不说,Go 跨平台编译这个能力实在是太强了。
LeslieLeung/go-multiplatform-docker
欢迎 star 。
1
ewBuyVmLZMZE 2022-07-25 03:16:55 +08:00 3
没这么麻烦吧,gorelease 不是分分钟就解决了。
|
2
Trim21 2022-07-25 03:32:44 +08:00
用 GitHub Actions 的话直接开一堆平台的虚拟机,不是连交叉编译都不需要了吗...
|
3
yulon 2022-07-25 07:49:11 +08:00
就薅吧就薅吧
|
4
onlyice 2022-07-25 10:20:13 +08:00
可以看看 gox
|
5
twistedmeadows 2022-07-25 12:57:41 +08:00
蛮有用的介绍。刚玩了玩,不知道是我的项目有什么特殊之处还是?…… binary release 那个部分的写法在我的仓库上权限不足(最后一步发布到 release 失败)
自己研究了一下之后在 yml 里面补上了赋予 secrets.GITHUB_TOKEN 所需权限的设置: permissions: contents: write 然后就能发布成功了 |
6
twistedmeadows 2022-07-25 13:01:33 +08:00
代码缩进被吞了……总之就这两行应该很好看懂……
|
8
LeslieLeung OP |
9
twistedmeadows 2022-07-26 00:17:42 +08:00 via iPhone
@LeslieLeung 哦对就是这个,我也想改这个设置来着,但是 github 今天有 bug ,保存设置的时候显示数据类型不匹配 save 失败(无论怎么选,前端调接口传的 0 和 1 ,后端要求输入是 true 和 false )
然后我研究了下,用上面的方法能成功。 btw ,直接改设置会赋予 job 对仓库内所有功能的 write 权限,像上面那样写可以确保只给必要的最小权限,官方文档里更推荐后者。 |