竹子比Hudson(a.k.a.Jenkins)与任何其他CI系统

时间:2011-01-26 15:27:37

标签: java continuous-integration hudson bamboo

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

好的,既然人们不断提及其他CI产品,我会进一步打开它。这是我的一般问题。我想为新项目设置CI系统。该项目可能包含Java组件(WAR和JAR),一些python模块,甚至可能包含.NET组件。所以我想要一个可以的CI服务器:

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

6 个答案:

答案 0 :(得分:50)

免责声明:我在Bamboo工作,因此我不打算评论其他CI产品的功能,因为我对它们的体验有限。

回答您的具体要求:

  

处理多种语言

Bamboo提供多种语言的开箱即用支持。客户将它与Java,.Net,PHP,JavaScript等一起使用。尽管如此,大多数构建服务器都是通用的,至少可以执行一个可以启动构建过程的脚本。

  

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

Bamboo 2.7支持Build Stages,它允许您将构建分解为Unit Test Stage和Deploy Stage。仅当单元测试阶段成功时,构建才会转到Deploy Stage。在Bamboo 3.0中,我们将支持各阶段之间的工件共享,允许您在第一阶段创建工件(例如您的战争),并在以下阶段中使用此工件进行测试和部署。

  

我还想要一些与合适的代码覆盖工具集成的东西。

Bamboo支持Clover并且还有Cobertura的插件。

  

好看的报告很好,但不是必需的。

Bamboo有一个whole bunch of reports很好,但不是必需的:)

  

出现问题时的多种通知机制。

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

  

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

根据经验,托管您自己的CI服务器通常会更便宜。但是如果你需要扩展,Bamboo可以很容易地distribute your builds到其他本地代理或通过弹性代理扩展到亚马逊。

  

此外,这可能是天空中的馅饼,但是还有什么东西可以构建iPhone应用程序吗?

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

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

希望这会有所帮助。

答案 1 :(得分:39)

我没有使用过Bamboo,但是我使用过Hudson,Cruise和TFS,并且在所有这些中,Hudson都是最好的。设置起来非常简单,并且有一个非常好的Web GUI用于项目配置。 Hudson的优点在于,它支持几乎任何语言和功能,你可能想要假设有人为它编写了一个插件,它们可能就是这样。

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

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

另外它是免费的!

答案 2 :(得分:35)

Bamboo vs Hudson,在一个非常肤浅的层面,似乎归结为:

  • Bamboo:易于使用且美观
  • 詹金斯:粗糙的边缘,但比竹子更灵活

Bamboo和Jenkins都有很多错误(你遇到问题)但至少在Jenkins你更有可能在修复之前有一个解决方法。有了Bamboo,你就等着更新了。

答案 3 :(得分:16)

免责声明:我与Jenkins合作。

在我们的组织中(相当大,超过100名开发人员),我们发现这两个功能非常有用:

  1. 带有矩阵项目安全策略的CAS插件
  2. 构建管道插件
  3. LTS发布时间表。
  4. 关于您的问题:

    1. SCP PLUGIN或SSH PLUGIN
    2. 我们使用FINDBUGS,静态分析收集器插件,静态代码分析插件,任务扫描程序插件
    3. 上一页第3点+ Jenkins DocLinks插件
    4. 我们使用电子邮件Jenkins Email Extension Plugin,但它也支持其他系统,如rss,twitter发布,短信......
    5. 我们正在本地运行Tomcat Hosting。

答案 4 :(得分:5)

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

答案 5 :(得分:1)

如果您愿意为此付费,Anthill会查看您正在查看的所有内容。我们在我的公司为我们的网络团队使用它,它非常强大。

  

处理多种语言

开箱即用,它可以自动化您现有的脚本,并管理它们生成的工件,无论使用何种语言。

  

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

部署可以作为构建过程中的一个步骤添加。我不确定你是否想直接部署到生产部门,但如果管理层说你必须这样做,你当然可以。

  

我还想要一些与合适的代码覆盖工具集成的东西。

他们开箱即用,包括Clover,Cobertura,Emma,Checkstyle,CodeSonar,Coverity,FindBugs,Fortify,Klocwork,PMD和Sonar。

  

好看的报告很好,但不是必需的。

我不确定哪些报告可用,但有报告标签(我不去那里:-))

  

出现问题时的多种通知机制。

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

  

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

我看到了他们从图像中启动云会话的演示,并配有部署代理。我们在典型的Linux机器上运行它,但我知道有些人在VMWare服务器上运行它。

  

此外,这可能是天空中的馅饼,但是还有什么东西可以构建iPhone应用程序吗?

这可能属于第一个。