Travis 持续集成 GoLang 工程, 配置 踩坑记录

最近看了一些GoLang方面的文章,平时用来写一些脚本还是比较不错的。尤其是其可编译为二进制单一文件跨平台运行的特性,实在是让人喜爱。就我个人来说,解决了给没有计算机编程基础的人的环境下跑脚本要安装一堆环境/依赖的痛点。travis作为优秀的持续集成服务,其诸多的特性也值得尝试一下,与GitHub进行完美的结合,支持打包部署到项目release,当然travis的特性并不只有这些。

Travis-ci

  1. 首先,需要注册一下 Travis-ci ,直接使用GitHub授权登陆即可。
  2. 授权之后会要求进行同步GitHub项目,对需要使用Travis服务的勾选即可,Travis会自动给勾选的项目添加一个钩子,每当push代码就会触发Travis测试任务。当然,也可以手动到Travis进行手动触发(Trigger build),且可直接指定某一个commit触发。

⚠️踩坑记录

  1. Travis-ci.org是只支持public repo的,如果有private的需求的,可以到Travis-ci.com
  2. 如果有repo没有显示出来,可以在Travis的profile页面执行Sync account
  3. 如果是所属的组织没有显示出来,可以点击Review and add 进行授权同步。

.travis.yml

  1. .travis.yml文件是Travis服务读取项目配置的文件,支持多种语言,这里是GoLang的参考配置,支持上面介绍的打包部署。配置项这里不细讲,网上有很多介绍的文章。
  2. 可以在Job log控制台看到执行情况。

⚠️踩坑记录

  1. Travis打包部署到GitHub需要授权,可以通过Token的形式进行授权,这需要在.travis.yml配置文件的deploy块的 api_key 进行说明,然后需要在 Github Token 页生成一个包含repo权限的Token,然后在Travis项目的设置页面Environment Variables新增一条配置: Name为你在api_key处声明的变量,Value为生成的Token.

参考

  1. https://docs.travis-ci.com/user/deployment/releases/
  2. https://github.com/GameXG/TcpRoute2/blob/master/.travis.yml