Travis-CI是国外新兴的开源持续集成构建项目,支持Github项目,使用了小清新的yml语法,通过yml语法来驱动执行。Github项目的支持非常简单,开通Travis后只需编写.travis.yml就能完成持续集成。
Coveralls是一个自动化测试覆盖率的服务,它能提供代码覆盖率并友好的展现。
让我们现在开始吧!
持续集成Travis CI
travis对Github的支持非常好,而且是免费使用。当然它也提供私有的专业服务,有点小贵。
开通Travis
浏览器中输入travis网址https://travis-ci.org/。
使用github账号授权登录。添加项目,这里使用我写的Golang示例项目common。
编写.travis.yml
在Github项目根目录下添加.travis.yml
1 | language: go |
说明
- language指定开发语言
- notifications持续集成后邮件通知设置
- install依赖安装
- before_install依赖安装前执行
- script集成脚本
- before_deploy部署脚本前执行
- deploy部署脚本
其它配置项
提交.travis.yml
提交.travis.yml到Github,自动触发持续集成,到https://travis-ci.org/gunsluo/common查看结果
到这里就用travis完成了持续集成,简单吧。
测试覆盖率Coveralls
首先编写自己的单元测试代码,我提供的实例项目已经实现。如何编写单元测试不是这里的重点,先忽略过吧。
开通Coveralls
在coveralls官方网站使用github账号登录授权。
添加项目
加密repo_token
查看coveralls的repo_token。
repo_token涉及安全不应该提交到.travis.yml,coveralls提供了非对称加密repo_token的方法。
加密命令travis是用ruby编写的。ruby gem的国外下载源很慢,更改安装源,提高下载速度。
1 | gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ |
安装加密命令travis
1 | gem install travis |
加密
1 | travis encrypt COVERALLS_TOKEN=your_repo_token |
修改.travis.yml
1 | language: go |
说明
go get github.com/mattn/goveralls
goveralls是coveralls对golang的测试覆盖率支持命令go test -v -covermode=count -coverprofile=coverage.out
golang生成测试覆盖率文件$HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN
将测试覆盖率文件提交给coveralls- env环境变量设置,travis提供的repo_token安全方式之一
Github项目添加图标
travis页面复制图标标签
coveralls页面复制图标标签
将标签写入README.md
1 | [![Build Status](https://travis-ci.org/gunsluo/common.svg?branch=master)](https://travis-ci.org/gunsluo/common) [![Coverage Status](https://coveralls.io/repos/github/gunsluo/common/badge.svg?branch=master)](https://coveralls.io/github/gunsluo/common?branch=master) |
提交后检查下效果吧
ok, 项目可以直观看到编译和覆盖率的情况。