编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI就是这类工具之中,市场份额最大的一个。
什么是持续集成?
持续集成指的是只要代码有变更,都会触发CI服务器自动对项目进行自动运行构建,自动运行测试,反馈运行结果,最终甚至自动部署到测试环境。这样做的好处就是,随时发现问题,随时修复。因为修复问题的成本随着时间的推移而增长,越早发现,修复成本越低。
CI就是持续集成的?
这个是一个很大的误区,CI是解决问题的手段而不是目的,目的要如何提高代码质量。在有些公司的项目,编译一次半小时,上传到启动一次十几分钟,测试一次几个小时。不能在短时间内完成编译、测试的代码都有问题,导致CI形同虚设。这里的“短时间”是指5分钟以内。
持续集成的困难有哪些?
说实话个人认为,持续集成要实现快速的流水线作业,难点在于测试,特别是微服务环境下的系统间相互依赖,版本众多,是提供的集成化单元测试还是单元测试(粒度太小也太弱了),在之前已经探讨过。
Travis CI是什么东东?
Travis CI是在线托管的CI服务,用Travis来进行持续集成,不需要自己搭服务器,傻瓜式操作,用起来更方便。最重要的是,它对开源项目是免费的。如果是私有项目或非开源项目,可以使用收费的Travis Pro 。
谁在用?
因为GitHub和Travis是一对好基友,不用GitHub虽然也能用Travis,但是配置起来太麻烦。其实大多开源项目都在使用,都可能见过这个图标build:passing ,如果你push过开源代码,都知道,它会给你一个构建反馈(通过Travis实现的)。
这里再介绍一个高效的工具,它提供IM功能(https://gitter.im),也是可以与github集成的,方便在上面与作者沟通反馈问题。
支持哪些语言?
它支持市面上所有的语言,了解更多
如何使用?
- 使用GitHub账号登录Travis CI的网站:https://travis-ci.org/
- 编写.travis.yml文件来告诉Travis一些项目信息,并push,它会默认触发(install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true)。当然如果不能满足你的需要也可以编写script。
- 添加图片[](https://travis-ci.org/xxx/xxx)
.travis.yml的编写规则,具体可参考官方指导。
webhooks是什么?
webhooks是github针对每个项目提供的通知服务(可以理解是个触发器),非常有用。了解更多