为Github构建Golang发布二进制文件

8
我正在寻找构建Golang项目常见平台二进制文件的方法,以便在Github上发布。我已经知道如何手动进行发布,可以使用Github的说明,具体请参见创建发布。我目前正在使用aktau/github-release进行发布,但这需要手动登录不同的机器(OSX、Linux、Windows)并进行发布。Benedikt Lang曾经写过博客介绍如何使用Travis-CI(我还没有尝试过)。但我想公共Travis只能为Linux构建二进制文件。你有什么建议吗?

2
我理解您的意思是,您对交叉编译感兴趣吗?http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go - RoninDev
这个想法是为所有平台制作交叉编译的二进制文件,并在github上发布。 - RoninDev
是的,听起来像是交叉编译。 - Sonia Hamilton
顺便提一下,Travis CI 也可以进行 Mac OS X 构建:http://docs.travis-ci.com/user/osx-ci-environment/ - elithrar
3个回答

4
您大概是对Travis CI只在Linux上构建的事情正确的。因为go交叉编译需要从源代码编译并构建其他go可执行文件。就像RoninDev建议的那样,我建议您通过阅读博客文章来设置自己的交叉编译构建环境:

http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go

这很容易,只需要大约10分钟。之后,像Jenkins这样的构建工具将为您提供控制,以启动所需平台(Mac、Windows、Linux等)的构建,然后为每个平台推出git发行版。


4
感谢提供的所有建议和答案。交叉编译正是我所需要的,Dave Cheney的博客文章是一个不错的开始。
然而,我发现了更好的解决方案 - laher/goxc - “一个用于Go的构建工具,重点关注交叉编译、打包和部署”。它受到了Dave Cheney的启发,并且还包括Github的部署工具——正是我所需要的。(例如,我使用它来发布soniah/awsenv

2
我创建了goreleaser来实现这个目的。
如果你想的话,可以试一下 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接