A2d47398572d451cf03e34f365891f91
持续集成工具选型

一、前言

上一篇我们主要讲解了持续集成的理论部分,阅读完的朋友应该能了解到持续集成的重要性。 熟悉“持续集成”的朋友,一般都会同意这样的观点:“使用它已经成为一种强制”。如今有很多持续集成工具,在这篇文章中,我们将介绍几款流行的持续集成工具。阅读本篇文章后,你会对这些持续集成工具有一个更好的了解,知道他们能够为你提供什么功能,从而选出最适合项目的一款持续集成工具。

二、持续集成工具的维度

随着持续集成的持续发展,工具也越来越多样化,各有各的特点,那我们在选型是需要关注哪些点呢?

  • 支持的仓库类型:持续集成的源头就是源代码,并且它讲究Everything is code,所以支持的仓库类型应该需要优先考虑。
  • 支持的语言、平台:同仓库类型一样,若源头都进不了,持续集成便跑不动。
  • 特性:良好的特性,能更好的服务于持续集成,让持续集成发挥更大的作用。相反地,差劲的特性反而为影响持续集成的流程。 所以解决源头问题后特性需要重点考虑。
  • 价格:这点主要看公司能否提供或者个人愿不愿意出了。

下面我们就以这四个维度来分析下现今几个流行持续集成工具。

三、持续集成工具分析

Jenkins


Jenkins作为老牌的持续集成工具,经过这么多年的发展,积累很多优秀的插件,对构建持续集成带来很大的便利。

支持的仓库类型

Git、Mercurial、Subversion

支持的语言、平台

Jenkins提供集成的流程,支持的语言、平台依赖于操作系统。比如,在 Mac OS 上你可以构建 iOS 的持续集成。

价格

免费

特性

  • 跨平台:支持 Mac OS、Linux、Windows 。
  • 分布式构建:Jenkins能够让多台计算机( Master&Slaver)一起构建/测试。
  • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
  • 丰富的插件支持: 支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

下面重点介绍下Jenkins的可视化Pipeline。

BlueOcean是Jenkins推出的可视化Pipeline插件,其目的就是让程序员执行任务时,降低工作流程的复杂度和提升工作流程的清晰度,它具有如下特征:

  • 清晰的可视化,可以快速直观地观察项目Pipeline状态。
  • 通过UI直接介入Pipeline的中间问题。
  • 集成代码分支和pull请求。

仓库设置

仓库设置

Pipeline配置

Pipeline配置

Pipeline执行状态

Pipeline执行状态

项目dashboard

项目dashboard

详见视频(需要安全上网):

Gitlab CI

Gitlab CI作为gitlab提供的一个持续集成的套件,完美和gitlab进行集成。Gitlab CI已经集成进gitlab服务器中,在使用的时候只需要安装配置gitlab-runner即可。
gitlab-runner提供了一个可以进行编译的环境,负责从gitlab中拉取代码,根据工程中配置的gitlab-ci.yml,执行相应的命令进行编译。

支持的仓库类型

只支持Git,并且仓库需要在gitlab

支持的语言、平台

Gitlab CI提供集成的流程,支持的语言、平台依赖于运行gitlab-runner的操作系统。

价格

免费

特性

  • 配置简单:只需配置gitlab-runner,然后在gitlab-ci.yml中配置Pipeline流程即可。
  • 平台化:Gitlab CI从项目规划、源代码到集成再到反馈,覆盖了DevOps的整个生命周期。
top Created with Sketch.