竹与 哈德森(aka Jenkins)与任何其他CI系统[关闭]


119

有人对哈德森和竹子有经验吗?对这些产品的相对优势和劣势有何想法?

好的,由于人们一直在提及其他CI产品,因此我将进一步对此进行介绍。这是我的一般问题。我想为一个新项目设置一个CI系统。该项目可能具有Java组件(WAR和JAR),一些python模块,甚至可能还有.NET组件。因此,我希望配置项服务器可以:

  1. 处理多种语言,
  2. 将工件部署到服务器(即,如果所有单元测试都通过,则部署战争。)
  3. 我还想将一些东西与一个不错的代码覆盖工具集成在一起。
  4. 美观的报告不错,但不是必需的。
  5. 出错时有多种通知机制。
  6. 我不担心托管。我将在本地服务器或Amazon实例上运行它。
  7. 另外,这也许是天上掉下来的馅饼,但是还有什么可以构建iPhone应用程序的吗?

2
只是为了进一步弄乱水域,您是否考虑过Team City?他们有一个免费版本(受用户数量限制)版本。我过去曾经使用过它,并且非常喜欢它提供的信息。
2011年


2
让我们继续摸索:) 完整性应用程序。 它可以部署到Heroku,因此您可以免费使用CI服务器。
尼尔安

我还没见过TeamCity。而且我没有意识到甲骨文强迫哈德森成为詹金斯。我将编辑问题以反映这一点。
Karthik Ramachandran

2
有一个关于它的线程在这里:forums.atlassian.com/message.jspa?messageID=257292121
SAL

Answers:


50

免责声明:我在Bamboo上工作,因此由于我对其他CI产品的经验有限,因此我不会对它们进行评论。

要满足您的特定要求:

处理多种语言

Bamboo具有对多种语言的现成支持。客户将其与Java,.Net,PHP,JavaScript等配合使用。也就是说,大多数构建服务器具有足够的通用性,至少可以执行可以启动构建过程的脚本。

将工件部署到服务器(即,如果所有单元测试都通过,则部署战争。)

Bamboo 2.7支持构建阶段,这使您可以将构建分解为单元测试阶段和部署阶段。仅当单元测试阶段成功时,构建才会继续进行到部署阶段。在Bamboo 3.0中,我们将支持各个阶段之间的工件共享,允许您在第一个阶段中创建工件(例如,您的战争),并在随后的阶段中使用该工件进行测试和部署。

我还想将一些东西与一个不错的代码覆盖工具集成在一起。

Bamboo附带了对Clover的支持,并且还有一个可用于Cobertura的插件。

美观的报告不错,但不是必需的。

Bamboo有很多报告,虽然不错,但不是必需的:)

出错时有多种通知机制。

Bamboo可以通过电子邮件,RSS,IM,IDE插件或整个团队都可以看到的漂亮的墙板通知您。

我不担心托管。我将在本地服务器或Amazon实例上运行它。

根据经验,托管自己的CI服务器通常比较便宜。但是,如果您需要扩展,Bamboo可以轻松地将您的构建分发到其他本地代理,或通过Elastic代理扩展到Amazon。

此外,这也许是天上掉馅饼,但是是否有一些东西也可以构建iPhone应用程序?

与第一个问题的答案类似,大多数CI服务器将能够以某些方式构建iPhone应用程序。不过,可能还需要更多脚本。

价格: Bamboo不是免费的(除了我们免费的入门许可证)/ libre / open-source,但是,如果您购买商业许可证并获得全面支持,您将获得Bamboo的源代码。与CI服务器所需的计算能力和潜在维护成本相比,Bamboo许可证的成本相当低。

希望这可以帮助。


15
Bamboo的定价结构存在缺陷。它不会区分具有并行构建的用户和仅需要远程代理进行跨平台测试的用户。如果您尝试为Windows,Linux和Mac(甚至可能是不同的版本)运行微型构建服务器,则价格会迅速跃升至每年数千美元。更好的方法是对并行构建收费。
吉利2012年

Bamboo对詹金斯(Jenkins)的最大特色是自动合并分支机构,以防止团队中的开发人员之间发生偏差。但是可悲的是,他们仅支持GIT和Mercurial,因此任何使用SVN或其他功能的人都将无法使用。但是Jenkins具有SVN Merge插件,可以让我们做到这一点。
george_h 2013年

1
@george_h Jenkins 的GIT插件现在支持分支的自动合并。我不确定何时实施。
slu 2014年

1
那很棒。我实际上已经使用了竹子和詹金斯,到目前为止,詹金斯更好。最后,它只是一台运行Ant + Maven的服务器。
george_h 2014年

40

我没有使用Bamboo,但是我使用了Hudson,Cruise和TFS,而在所有这些中,Hudson都是最好的。它非常容易设置,并且具有用于项目配置的非常好的Web GUI。Hudson的优点在于,它支持几乎所有您可能想要的语言和功能,前提是有人为他们编写了插件,而他们可能已经拥有。

http://wiki.hudson-ci.org/display/HUDSON/Plugins

我们使用它来运行.NET,Java和C ++以及基于定时间隔的构建,以及带有自动测试工具的SVN签入,这很棒。在我离开之前,我刚工作的地方就在我离开之前就开始了一些iPhone开发,我相信他们也正在使用Hudson。

另外它是免费的!


35

从表面上看,Bamboo vs Hudson似乎可以归结为:

  • Bamboo:易于使用且外观漂亮
  • 詹金斯:边缘粗糙,但比竹子灵活得多

Bamboo和Jenkins都有许多错误(您遇到问题),但至少对于Jenkins,您更有可能找到解决方法,直到它得到修复。使用Bamboo,您就不得不等待更新。


我会猜到,与Bamboo在一起,您至少对此有商业支持。
凯基

3
@keiki,是和不是。是的,您可以获得商业支持,但是却要花很多钱(您需要问问自己,成本/收益是否合理)。值得注意的是,您将遇到的许多问题是由缺少功能引起的。Atlassian会尽力为您提供帮助,但最终他们的资源有限,可能需要数年的时间才能添加您要求的功能(取决于其受欢迎程度)。
吉利2014年

1
+1为灵活性。对于现代工具,Bamboo确实受到限制,而对于CI工具来说,Bamboo的局限性在于它并非从头开始。最重要的是,Atlassian无法像我们习惯于使用OSS那样优先处理/处理Bamboo bug。
Paddy

16

免责声明:我正在与詹金斯一起工作。

在我们的组织(很大,有100多个开发人员)中,我们还发现这两个功能非常有用:

  1. 具有矩阵项目安全策略的CAS插件
  2. 构建管道插件
  3. LTS发布时间表。

关于您的问题:

  1. SCP插件或SSH插件
  2. 我们使用FINDBUGS,静态分析收集器插件,静态代码分析插件,任务扫描器插件
  3. 上一章第3点+ Jenkins DocLinks插件
  4. 我们使用电子邮件Jenkins电子邮件扩展插件,但它也支持其他系统,例如rss,twitter publish,sms ...
  5. 我们在本地的Tomcat托管中运行。
  6. 是。

5

好吧,到目前为止,我还没有使用Bamboo,但是区别在于Hudson是免费/自由/开源软件。


10
拒绝投票-这个答案是正确的,但是很琐碎(大概知道这两种产品的人都知道这一点); OP正在寻找功能比较。
杰森S

1

如果您愿意为此付费,那么Anthill会满足您的所有需求。我们在我们公司的Web团队中使用它,它功能强大。

处理多种语言

开箱即用,无论您使用哪种语言,它都会自动执行现有脚本并管理它们产生的工件。

将工件部署到服务器(即,如果所有单元测试都通过,则部署战争。)

可以在部署过程中添加部署。我不确定您是否希望直接将其部署到生产中,但是如果管理层说必须这样做,您当然可以。

我还想将一些东西与一个不错的代码覆盖工具集成在一起。

它们与Clover,Cobertura,Emma,Checkstyle,CodeSonar,Coverity,FindBugs,Fortify,Klocwork,PMD和Sonar集成在一起。

美观的报告不错,但不是必需的。

我不确定有哪些报告可用,但是有一个“报告”标签(我不在那儿:-))

出错时有多种通知机制。

我知道它可以发送电子邮件(并因此发送短信),并集成了一些IM服务。

我不担心托管。我将在本地服务器或Amazon实例上运行它。

我看到了一个有关他们的演示的示例,该演示从映像启动了云会话,并带有用于部署的代理。我们在典型的Linux机器上运行它,但是我知道有些人在VMWare服务器上运行它。

此外,这也许是天上掉馅饼,但是是否有一些东西也可以构建iPhone应用程序?

这可能属于第一个。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.