上一篇文章提到了npm的接入 travis 实现自动发布 npm 包的方法,本文主要讲述 Go 项目的使用,主要分为执行单元测试和 build 打包发步到 github release。具体 travis 的基本操作参考上文即可,本文只讲述不同的部分
单元测试
本文不讲述 Go 的单元测试如何编写,这里直接以filenamify(一个合法化文件路径的库)为例子。已为filenamify.go
编写测试文件filenamify_test.go
。只需要在tracis
中执行go test -v
即可。
1 | # https://github.com/flytam/filenamify/blob/master/.travis.yml |
然后给在项目中加上构建状态图标。搞定
这样,每次推送到远程,就会触发CI自动执行单元测试
发布 github release
有时候我们的 Go 项目是需要打包成可行文件直接发布到 github release 让别人下载执行的。这时候也可以使用travis
实现,借助travis releases
工具即可
1、新建一个.travis.yml
文件,填入基本的 Go 配置环境
1 | language: go |
2、编写Makefile
在nodejs
项目中,我们一般会配置一个npm run test
的命令执行测试,但是 Go 是没有npm
和package.json
这两个东西,这时候就需要编写Makefile
来实现了(可以把Makefile
看作功能类型于package.json
的东西,只是使用make xxx
来执行),Makefile
编写可以参考。
以blog-sync为例子,这里我是需要打包全平台的可行文件,于是Makefile
如下
1 | GOCMD=go |
执行make build-all
即可在bin
目录下生成 3 个平台的可执行文件。
1 | language: go |
3、使用setup
初始化配置
1 | # 已经安装travis cli |
再简单定制化后,最终如下配置,releases
配置可参考文档
1 | # https://github.com/flytam/blog-sync/blob/master/.travis.yml |
4、发布
每次打tag推送到仓库,就会触发自动发布可执行文件到github release
1 | git tag 1.0.0 |
5、可以看到,我们的自动构建发布 release 成功了
- Post title:Go项目接入travis CI总结
- Post author:flytam
- Create time:2020-03-21 12:05:08
- Post link:https://blog.flytam.vip/Go项目接入travis CI总结.html
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.