CI - Continuous Integration 也就是持续集成。关于持续即成的概念可参考其他大神的日志:http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html。
随着近年Devops的盛行,市面上CI服务提供商也非常多。比如在这篇文章:https://stackify.com/top-continuous-integration-tools/ 里就提到了50个,令人眼花缭乱。目前我遇到的私人项目用Jenkins居多,公开项目用TravisCI的不少,这东西我并不在行,也就不做过多评价了。
其实本质上CI提供了一个独立的运行环境,可以根据配置文件按步运行一套指令,就好像你给一个无GUI的虚拟机(一般是Linux,也有macos的)下达了一系列工作指令,而这个运行结果对你是个可见的。这些工作指令除却提供商定义的一些像环境选项(比如node版本),运行步骤(可以分割成多个运行和测试环境)之类,剩下的就是各种被CI支持的bash命令了。
对Git来说,这一套指令的触发时机便是一个branch上的history发生改变的时候,如做push或merge操作之后,这也可以在CI服务平台上