weiqi7777

什么是持续集成?

0
阅读(1072)

    持续集成(continuous integration,简称CI),是互联网软件开发与发布的一套标准流程。但是这个持续集成,不仅限于与互联网软件开发与发布,只要是需要自动化的地方,都可以引入这个持续集成来实现。特别是对于代码管理,这个持续集成,尤其显得重要。

    一般来说,对于软件或者IC开发,因为是多人协作开发,因此会有一个统一的远程版本库,用来存放最新代码。我们开发的时候,从远程版本库中拉取(pull)代码,然后添加我们自己写的代码,最后将代码推送(push)到远程版本库。

    其开发方式如下图所示:

    但是这样开发,引入了一个问题,如何保证远程版本库中的代码是没有问题的,因为每天,可能有多个版本要push到远程版本库。如何确保,每次push到远程版本库中的代码,是没有问题的,这个就是一个很重要的需求。

    最显而易见的想法,就是对于每次push,就执行一次测试,如果测试成功,那么就允许push的代码merge到远程版本库中。这也是持续集成的基本思想。其流程图如下所示:

    每当程序员push一个变更到远程版本库,就会自动的触发CI服务器,执行相关操作任务。执行完毕后将结果反馈给相关人员。

    这一切工作,都是CI服务器自动完成的,我们只需要设置CI服务器执行什么操作即可。比如,当程序员push变更到远程版本库后,CI服务器自动执行测试任务,测试通过,允许变更合并到远程版本库,测试不通过,不允许变更合并到远程版本库,并将测试不通过结果反馈给程序员。这样,就可以确保远程版本库中的代码是没有问题的,随时可以交互,随时可以部署。

    实现持续集成,需要持续集成工具。这里,推荐jenkins,开源,搭建简单,使用简单。后文,将介绍jenkins的使用,以及jenkins和gitlab协同实现持续集成。