持续集成(Continuous integration,简称 CI)
开发中,我们经常遇到一些奇怪问题,比如:
本地可以编译成功的代码但是同事们更新代码后编译出错;
在项目有多个Target(目标)的时候,资源文件只添加到了当前的Target,另外一个Target这个时候是不能正常编译的;
写的工具类,被同事改了,或者自己有改动,很多地方用到了,怎么保证这个类的行为没有发生变化而影响到项目中的其它模块呢?
诸如此类。
引起各种奇怪问题的原因有很多,比如:
开发环境比较复杂不干净;
IDE的bug;
提交前有一些必要的检查需要做,但是开发时因为各种原因没做。
那么这些问题可否避免呢?当然是可以避免的,如果代码有新的改动,提交到版本库中的时候,有一个人帮我们检查必要事项,然后做做测试。这个当然是可以的,前提是老板同意专门招一个这样的人。
这些机械重复的事情我们可以找一个工具来帮我们完成,这个工具跑在一个专门的服务器上,该服务器环境相对干净、可以运行一些自动化操作(自动编译,代码检查,测试等环节)。那么这种工具,就是接下来讲的“持续集成”。
1.2、简单理解持续集成