2011年正式进入XF测试技术团队后,我和小伙伴们组建了自动化测试专项技术小组,开始了我们技术的研究、学习和应用的修炼道路。那一年持续集成开始风靡起来,我们也搭上了这一股东风,开始研究起了Hudson,也就是jenkins的前身。我们利用Hudson把我们的测试脚本管理起来,跟SVN进行关联,实现了代码的自动构建,自动化部署以及自动化测试的联动。那个时候还没有流水线pipline的概念,逻辑开关也基本是通过编写脚本进行控制。再后来,我们又使用JRuby调用jar包陆续开发了一些Hudson的插件,更进一步完善了整个CI流程。持续集成作为一项工程实践,被大量的应用于各种项目,尤其是敏捷模式下在那个时候简直火出圈,各种行业大会,研发、测试、产品各种大佬都疯狂追捧,而此时hudson也逐步被更稳定功能插件更丰富的jenkins所取代。我们决定在持续集成工具jenkins上加大投入,结合业务形成我们自己的一套玩法。
为了解决jenkins与组织适配过程中诸如用户管理和权限管理,项目和构建任务主数据的管理,代码的分支管理等问题,我们打算对jenkins进行改造。由于jenkins是java技术栈,而我们是Ruby技术栈,以当时我们的测试开发技术水平还不足对jenkins的代码做直接改造,于是我们决定采取封装的方式,即通过Ruby on Rails开发一个持续集成平台满足项目、构建任务、用户等的管理诉求,底层则仍然调用jenkins的API实现自动化的构建。再后来,为了让持续集成平台更像是项目中嵌入的一个环节,打造一个更加一体化的系统,我们在公司内开始推进另一个系统Redmine。一款基于Ruby开发的开源项目管理系统。我们最终放弃了ROR开发的持续集成平台,而改以Redmine插件的方式,把持续集成和我们封装的功能加入到Redmine中,让业务的同学即能够用Redmine进行研发项目管理,又能在同一个平台中使用Redmine进行构建。完成了XF第一代持续集成平台的构建后,我们开始了大规模的推广,在大约不到半年的时间里,我们覆盖了将近40%的研发项目,大多数的项目的构建和发布效率得到了大幅的提升,一时间也引起了CTO的关注。在后来我所组织的第一届合肥地区的测试嘉年华会议中,我也对这个平台以及我们在持续集成实践方面的的经验给合肥地区的行业小伙伴们做了分享。在这个平台的构建中,我们既作为开发者,又作为运营者,更作为实践的引入和布道者,收获了满满的成就感和平台建设的经验。
后来,我们实现的这个持续集成平台随着业务和技术的发展,最终还是被自研的java技术栈的质效平台所替代。时至今日,作为第一个把CI和对应实践引入到XF的测试人员,偶尔还是觉得有些激动。
请关注
![](https://img-blog.csdnimg.cn/img_convert/763c2c99903f2c794d34d16f804136ce.png)
(喜欢请转发,谢谢!)
加入爱测未来qq群,获取更专业的技术知识分享:
274166295 (爱测未来二群)
610934609 (爱测未来三群)
195730410 (爱测未来四群)
更多精彩文章: