使用jenkins做CI的意义

    近几年来,敏捷和持续集成可能已经成了一个热门的话题。各个公司都在运行敏捷软件开发的框架,scrum或者Agile或者其它的,反正很火很火的。我们自己的Team也差不多运行了两年了,有好的地方,也有坏的地方,以后有机会再去讨论这些。在敏捷的Team里面,项目按照sprint来划分,每个sprint是一个周期,确定好这个sprint的目标,讨论这些目标的value,然后去执行。软件的开发周期就有这些sprint来组成,每个sprint内都会去检验这个sprint内的目标或者任务是否完成。持续集成就是一个检验的工具,帮助我们确保开发的软件的质量。

    对于持续集成,有很多实现方式,jenkins就是一款高效易用的工具,而且是开源的。使用方便,配置灵活,而且提供了很多plugin供用户使用。那到底jenkins能帮我们做什么呢?

    一般,程序员开发了新的feature,要先提交代码都repository(GIt,SVN或CVS)和测试打包,如果规范一点的还有可能需要其他的同事review code。jenkins可以和repository连接,触发job去编译和打包,然后将结果发送回去,帮助你检验代码是否正确和完备。这个就是commit check。

    在软件的开发周期会有很多delivery点,一般我们按照需求,完成预定的feature,test->report bugs->fix bugs->generate package->delivery notes。在这么一个过程中,我们一般需要得到稳定可靠的package,jenkins的打包job就可以帮助我们,它可以按照Tag去repository获取该tag的代码,自动去打包,这个就是Tag build,因为软件的开发是一个迭代的过程,我们会在长时间的周期内开发很多的features,一个自动化的工具可以减少人为的失误。

     开发新feature的同时,我们一般需要写Unit test case。然后去执行这些case。Jenkins提供了UT report的接口,我们可以把这些Case放到jenkins的job中去执行。执行结束后,将UT的result发送到jenkins,这样我们可以得到持续的UT结果,一旦有异常,可以迅速的troubleshooting这些BUG。

    

猜你喜欢

转载自david-je.iteye.com/blog/1929954