如果你很熟悉“持续集成”,一定会同意这样的观点:“它已经逐渐成为一种必不可少的工具”。在这篇文章中,我们将介绍几款流行的持续集成工具。阅读后,你会对这些CI工具有一个更好的了解,知道他们能够为你提供什么功能,从而选出最适合你的一款持续集成工具。

接下来将依次介绍8款持续集成工具(排列顺序无意义):

Jenkins

Jenkins是一款用Java编写的开源的CI工具。当Oracle收购Sun Microsystems时,它作为Hudson的分支被开发出来。Jenkins是一个跨平台的CI工具,它通过GUI界面和控制台命令进行配置。

Jenkins非常灵活,因为它可以通过插件扩展功能。Jenkins插件非常好用,同时你可以容易地添加自己的插件。除了它的扩展性之外,Jenkins还有另一个非常好的功能——它可以在多台机器上进行分布式地构建和负载测试。Jenkins是根据MIT许可协议发布的,因此可以自由地使用和分发。Cloudbees还提供Jenkins in Cloud形式的托管解决方案。

总结:Jenkins是最好的持续集成工具之一,它既强大又灵活。学习它可能要花费一些时间,但是如果你需要一个灵活的持续集成解决方案,那么学习使用它将是非常值得的。

官方网址:Jenkins

可用性:免费

平台:跨平台

TeamCity

TeamCity是一款成熟的CI服务器,来自JetBrains公司。JetBrains已经在软件开发世界中建立了权威,他们的工具如WebStorm和ReSharper正被全球的开发者所使用。

TeamCity在它的免费版本中提供了所有功能,但仅限于20个配置和3个构建代理。额外的构建代理和构建配置需要购买,你可以在这里找到价格。

TeamCity安装后即可使用,可以在多种不同的平台上工作,并支持各种各样的工具和框架。能够支持JetBrains和第三方公司开发的公开的插件。尽管是基于Java的解决方案,TeamCity在众多的持续集成工具中提供了最好的.NET支持。TeamCity也有多种企业软件包,可以按所需代理的数量进行扩展。

总结:整体而言是TeamCity是非常好的持续集成解决方案,但由于其复杂性和价格,更适合企业需求。

官方网站:TeamCity

可用性:3个代理和20个构建配置是免费的,额外的代理和配置需要付费

平台:Servlet容器(本地)

Travis CI

Travis CI是最老的托管解决方案之一,赢得了很多人的信任。虽然它主要以托管解决方案而闻名,但它也以企业包的形式提供内部版本。

Travis CI对GitHub上托管的所有开源项目以及前100个版本的构建都是免费的。有几个定价计划可以供你选择,它们之间主要区别是你可以运行的并发构建数量。

Travis CI的构建通过.travis.yml文件进行配置,该文件包含了在构建时所需要执行的任务。它能够支持多种语言并提供完善的帮助文档。

总结:一个成熟的解决方案,提供托管和本地变种,被许多团队喜爱和使用,非常有据可查。

官方网站:Travis CI

可用性:对开源计划和前100个版本的构建是免费的,其他的服务需要付费

平台:托管和本地

Go CD

Go是ThoughtWorks公司最新的Cruise Control的化身。除了ThoughtWorks提供的商业支持,Go是免费的。它适用于Windows,Mac和各种Linux发行版。

让Go脱颖而出的是它的流水线概念,使复杂的构建流程变得简单。关于流水线概念是如何帮助持续交付,以及如何与Jenkins的流水线流程进行比较,您可以在这里阅读到相关内容。它最初的设计时就支持流水线概念,消除了构建过程的瓶颈,并能够并行地执行任务。

总结:Go CD非常适合复杂场景,并且能够免费提供付费的支持。

官方网站:Go CD

可用性:免费提供付费的支持

平台:Windows,Mac和一些Linux发行版

Bamboo

Atlassian是专注于为软件开发团队提供工具的公司,你或许已经通过JIRA和Bitbucket了解到了他们。Bamboo最初提供了云端和本地两种持续集成的解决方案,但在2016年5月,云端版本不再支持Bitbucket Pipeline。

Bitbucket Pipeline能够支持Docker, 是一个非常高效且快速的持续集成解决方案,正在迅速发展,是Bamboo云端版本的有利继承者。

Bamboo可以免费试用30天。作为Atlassian工具,它能够很好地支持JIRA和BitBucket,甚至可以将Jenkins配置轻松地导入到Bamboo中。

总结:Bamboo是一款本地CI工具。其原本的云段解决方案被Bitbucket pipeline所取代。有30天的免费试用,在此之后可以进行付费使用。

官方网站:Bamboo

可用性:付费免费试用

平台:本地

GitLab CI

GitLab CI是开源的Rails项目GitLab的一个组成部分,由GitLab公司将它带到了大众的视野中。GitLab托管在GitLab.com上,GitLab.com提供了免费的托管服务,并且提供了git仓库存储和管理功能,如访问控制,问题跟踪,代码评论等。

GitLab CI能与GitLab完全集成,可以通过使用GitLab API轻松地作为项目的钩子。GitLab的执行部分(流程构建)使用Go语言编写,可以运行在Windows,Linux,OSX,FreeBSD和Docker上。

官方的Go Runner可以同时运行多个作业,并具有内置的Docker支持。 Gitlab CI有两个版本:开源的GitLab社区版和GitLab企业版。

总结:GitLab CI是一款令人印象深刻的托管工具,提供了免费版本和企业版本。

官方网站:GitLab CI

可用性:免费和付费

平台:托管(可以在Gitlab.com上托管)

CircleCI

CircleCI也来自GitLab公司,是另一款云端的持续集成管理工具。CircleCI目前仅支持Github管理,它能够支持的语言包括:Java, Ruby/Rails, Python, Node.js, PHP, Haskell, and Skala。

CircleCI和其他持续集成工具不同的地方在于他们提供服务的方式。CircleCI需要付费的主要是它的容器。你可以免费使用一个容器,当你开始使用更多容器的时候,你可以选择你所需要的并行化级别来加速你的应用。

主要有5个并行化级别可以供我们选择: 1x, 4x, 8x, 12x and 16x。你可以选择用16个容器进行一个项目的构建,此时并行化级别就为16x,当然你也可以用16个容器同时进行4个项目的构建,此时并行化级别为4x,如何选择取决于你。同时CircleCI也能够支持Docker。

总结:CircleCI是一个灵活的云端CI工具,提供的最大并行化级别为16x。当你需要快速地进行项目构建时它将是一个不错的选择,同时它的价格也不是很贵。

官方网站:CircleCI

可用性:免费和付费

平台:托管

Codeship

Codeship是一个本地的持续集成解决方案。它有两种不同的版本:基本版和专业版。在基本版中提供了安装即用的持续集成服务但是不能够支持Docker,它的主要用途就是通过UI来进行应用的构建等操作。专业版本提供了更灵活的功能以及Docker支持。

在基本版中有几个可选的付费包,越贵的付费包并行能力越好。在专业版本中你可以选择你的实例类型和并行级别(最高的级别为20x),价格稍微有点贵,但是大多数的团队应该会需要这种并行化构建的功能。

总结:Codeship是一个强大的带有Docker支持的本地持续集成解决方案。

官方网站:Codeship

可用性:每个月的前100次构建免费,后续的构建需要付费

平台:托管

Codefresh

上面所提到的很多工具都能够支持Docker,但Codefrsh从设计到开发都将容器的理念贯彻其中。

Codefresh的开发者们从一开始就意识到Docker会广受欢迎。Codefresh除了能够在现有的Docker文件中工作外,你也可以选择几个不同的模板来轻松地的将你的项目迁移到docker容器中。它的UI非常的干净和容易理解,你可以很容易地上手。

之所以将Codefresh介绍给你们的原因在于它有一个让人非常惊喜的功能。这个功能就是将你的镜像发布到一个临时的环境中。当项目被建立时,它的镜像也被建立了,你可以发布这个镜像并观察它是如何工作的。那意味着你可以得到一个临时的工作环境,而不需要一个额外的虚拟机,这就是它非常棒的地方。

Codefresh是一款比较新的工具,有很多能够改进的地方和新的特性可以增加。但是它把容器作为它的重要组成部分使得它对任何一个打算使用Docker容器的团队来说都将是一个非常好的持续集成解决方案。

总结:Codefresh是一个支持Docker的持续集成工具,它可以发布和建立本地环境的Docker镜像。

官方网站:Codefresh

可用性:每个月的前200次构建,5个并发的构建和一个本地环境是免费的,额外的服务需要付费。

平台:本地

那么,对于你和你的团队来说,完美的持续集成工具是什么?

在为你的项目选择正确的CI工具时,需要牢记几件事情:

本地解决方案为构建过程提供了足够的灵活性,并且项目信息能被存储在本地。这对你来说可能并不重要,但在某些情况下,对某些公司来说,这可能是强制性的。

另一方面,托管解决方案不会提供太多的设置选项和更大的可扩展性,因为你不需要硬件来托管它们。

另一个重要的事情是是否支持Docker。Docker革新了我们分发应用程序的方式,并成为不可忽视的一项技术手段。尽管上面提到的绝大多数工具都支持Docker,但有些工具对Docker更友好更包容。

最后一个容易被忽视的是用户界面。上述中的一些工具比其他工具更容易使用。一个好的CI工具的主要作用之一就是使构建过程变得容易,因此UI操作应该是简单和流畅的。

长按识别二维码关注我们

转载于:https://blog.51cto.com/13561855/2063775

不容错过的8个持续集成工具相关推荐

  1. 如何做好持续集成和部署?你不容错过的持续集成工具—Jenkins

    持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地 ...

  2. jenkins 忘记密码_持续集成工具Jenkins 在CentOS系统下安装

    一.Jenkins简介 Jenkins是一个开源的持续集成工具,用于持续.自动的构建.测试.发布项目.Jenkins使用Java开发,可与版本管理工具集成使用. Jenkins支持UI操作来部署流水线 ...

  3. 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...

    一.Jenkins 简介 \\ 当每月发布次数变得越来越多时,如超过 200 次,发布工作人员的工作量会翻倍,此时由人工发布操作失误引起的风险会变得越来越大.为了提高项目的发布效率,也为了降低由人工操 ...

  4. 持续集成工具 Jetbrains TeamCity 简介

    目录 安装 Windows下安装 Docker下安装 使用TeamCity 初始化 配置数据库 新建项目 设置构建步骤 构建项目 测试项目 自动构建 邮件通知 大名鼎鼎的Intellij IDEA大家 ...

  5. java 持续集成工具_Jenkins集成式项目控件下载

    Jenkins是一款基于Java开发的持续集成工具,它是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能, 主要可用于持续.自动地构建/测试软件项目,如CruiseContr ...

  6. Hudson:持续集成工具的安装、使用

    Hudson简介 http://hudson-ci.org      以其强大的功能和易用的界面征服了大量的用户,它与主流的构建工具.版本控制系统以及自动化测试框架都能进行很好的集成.      很多 ...

  7. 持续集成工具jenkins的部署--Windows篇

    一.前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.本文使用Jenkins构建githu ...

  8. 以持续集成工具实现DevOps之禅

    作为DevOps流程中的一个重要组成部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建.单元测试与集成测试的执行,以及生成执行结果的报表等等.CI使开发团队无需将时间浪费在处理代码 ...

  9. python 持续集成工具_持续集成工具: Jenkins学习

    持续集成工具: Jenkins学习 -- 部分内容收集自网络,如有侵权,请联系作者删除 一. 概念 在过去的开发整体流程中,是所有人写好代码之后统一进行合并(svn,git),然后进行测试,确保准发布 ...

最新文章

  1. 一个ASP页面访问需要输入密码后才可以继续访问的实例
  2. Android挂载以点号(.)开头的文件夹或是文件
  3. linux删除物理卷命令,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区
  4. apache2.4.18中启用h2c
  5. 计算机视觉基础:图像处理 Task 04:图像滤波
  6. 如何在Git中合并特定的提交
  7. 服务器遭受攻击的解决办法
  8. Android Studio 写个单元测试用例,就是这么方便
  9. python-文字pdf转换为图片pdf
  10. iOS 增强现实教程:基于位置定位
  11. 服务器大线程有什么作用,全面剖析超线程技术优点与缺点
  12. C++ 调用Asprise OCR识别图片中的文字
  13. 全球与中国具有集成保护功能的共模滤波器(CMF)市场深度研究分析报告
  14. navicat mysql视图_Navicat教你如何做MySQL 视图
  15. Excel写入换行-JAVA
  16. 海外社交媒体最佳图片尺寸
  17. eSIM卡和SIM卡的区别是什么?
  18. SpringCloud OpenFeign 整合 logbook 实现链路日志
  19. Tuscany SCA
  20. java ftp删除_java ftp实现文件上传和删除

热门文章

  1. 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)
  2. C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法
  3. 使用Dockerfile定制镜像来部署Tomcat项目
  4. 【编程5】斐波那契数列 + 递归+LeetCode50
  5. arduino 勘智k210_如何评价嘉楠耘智的勘智K210芯片?
  6. 新康众闫顺成:数据中台建设中的得与失
  7. 万字解读 | SaaS 行业,如何衡量与优化关键指标?
  8. git 工作流和git commit规范
  9. 微信内测附近的餐厅,小程序要跨界外卖了?
  10. 2018 Multi-University Training Contest 6-oval-and-rectangle(hdu 6362)-题解