Fork me on GitHub

Travis 持续集成入门

你指尖跃动的电光,是我此生不灭的信仰

某科学的超电磁炮

今天是过年回来第一天上班,大家都忙着收红包呢,抽空写一篇 Travis 入门吧。

最初是因为看到很多人的项目中都有一个绿色的 build:passing 徽章,觉得好高大上,于是就去研究了一下。如何才能拿到这个徽章呢?下面进入正题。

首先,进入 Travis 官方网站,公共仓库点这里,私有仓库点这里。按照官网的意思两种仓库的设置方式是一样的,我没有私有仓库,这一点有待证实,只能拿公共仓库继续讲了。首次访问需要授权给 Travis 访问你的 Github 代码库。

然后就可以看到你存放在 Github 上所有的项目目录了,选择想要持续集成的项目,点击将项目前面的 X 改成 ,再点击项目名称前的设置按钮进入设置界面。

在设置界面中,作为入门级教程,下面的什么环境变量、定时任务我们都可以不用管,只要看最上面 General 里面的配置即可。这里默认打开了 Build pushed branchesBuild pushed pull requests 这两项,我们还需要将 Build Only if.travis.yml is present 这一项也打开。

接下来,我们在项目的根目录下添加 .travis.yml 文件,目的是告知 Travis 在我们push之后需要做什么工作。这里的配置,不同岗位的区别比较大,好在 Github 现成的例子到处都是,大家随便搜几个项目看一下,技术栈与自己基本一致的,把他的 .travis.yml 贴过来,小改一下就能用了。本人只是一个小小的前端工程师,贴一个 gulp的例子吧:

1
2
3
4
5
6
7
8
9
10
sudo:          false
language: node_js
node_js:
- "node"
install: npm install
script:
- gulp
cache:
directories:
- node_modules

更多的配置可参考官方文档,选择并展开 Programming Languages 项,在选择自己项目的语言类型,里面有详细的配置介绍,这里就不做过多说明了。

最后我们只需要将本次项目的改动提交,在push之后,Travis 就会开始工作了,大家可以去到 https://travis-ci.org/GithubName/ProjectName 查看 Travis 的工作状态。build成功则会在标题后面显示 build:passing,否则则显示 build:failed。点击该徽章会生成一个 Status Image 界面,将 url 复制出来即可。

那么 Travis 到底有什么用呢?这个问题有待深究,这里暂且不答,只引用廖雪峰老师在《使用Travis进行持续集成》提到的两个问题和解答:

Q: 是不是用了CI代码质量就有保证了?
A: 这个问题的答案是否。如果CI能提高代码质量,那软件公司只需要招实习生写代码外加CI就可以了,招那么贵的高级工程师浪费钱干啥?

Q: 是不是用了Travis就实现了CI?
A: 这个问题的答案还是否。CI是解决问题的手段而不是目的。问题是如何提高代码质量。我见过很多公司的项目,编译一次半小时(不是编译Linux内核那种),测试一次几个小时。不能在短时间内完成编译、测试的代码都有问题,导致CI形同虚设。这里的“短时间”是指5分钟以内。