竹子 VS 哈德森(又名詹金斯) VS 任何其他 CI 系统

有人对 Hudson 和竹子都有经验吗?对这些产品的优缺点有什么想法吗?

Okay, since folks keep mentioning other CI products I'll open this up further. Here are my general problem. I want to setup a CI system for a new project. This project will likely have Java components (WARs and JARs), some python modules, and possibly even a .NET component. So I want a CI server that can:

  1. Handle multiple languages,
  2. 将构件部署到服务器(即,如果所有单元测试都通过,则部署 war)
  3. 我也想与一个体面的代码覆盖率工具集成的东西。
  4. 漂亮的报告是好的,但不是必要的。
  5. 出现问题时的多个通知机制。
  6. 我不担心托管,我要么在本地服务器上运行,要么在亚马逊实例上运行。
  7. 另外,这也许是天方夜谭,但是有没有什么东西也可以构建 iPhone 应用程序呢?
77741 次浏览

我还没用过竹子但有一点不同的是 Hudson 是免费/自由/开源软件的。

免责声明: 我在竹子上工作,因此我不会评论其他 CI 产品的特性,因为我的经验有限。

回答你的具体要求:

处理多种语言

Bamboo has out of the box support for multiple languages. Customers use it with Java, .Net, PHP, JavaScript etc. That being said, most build servers are generic enough to at least execute a script that can kick off your build process.

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

竹2.7支持构建阶段,它允许您将构建分解为单元测试阶段和部署阶段。只有单元测试阶段成功,构建才会转移到部署阶段。在 竹子3.0中,我们将支持不同阶段之间的工件共享,允许您在第一阶段创建一个工件(例如您的战争) ,并在以下阶段使用该工件进行测试和部署。

I would also like something that integrated with a decent code coverage tool.

竹子提供了对 三叶草的支持,也提供了一个适用于 科伯图拉的插件。

Good looking reports are nice, but not essential.

竹子有一个很好的 一大堆报告,但不是必需品:)

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

竹子可以通过电子邮件、 RSS、 IM、 IDE 插件或者整个团队都可以看到的漂亮墙板来通知你。

我不担心托管,我要么在本地服务器上运行,要么在亚马逊实例上运行。

根据经验,托管您自己的 CI 服务器通常更便宜。但是,如果你需要扩大规模,竹使它很容易 分发你的版本额外的本地代理或规模扩大到亚马逊通过弹性代理。

此外,这可能是天方夜谭,但是有没有什么东西也可以构建 iPhone 应用程序呢?

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

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

希望这个能帮上忙。

我没有使用竹子,但我使用了哈德逊,巡航和 TFS,在所有这些哈德逊是手下最好的。它非常容易设置,并且有一个非常好的用于项目配置的 web GUI。Hudson 的伟大之处在于,它支持几乎所有您可能想要的语言和特性,假设有人已经为它编写了插件,他们可能已经编写了插件。

Http://wiki.hudson-ci.org/display/hudson/plugins

我们用它来逃跑。NET、 Java 和 C + + 构建于定时间隔以及带有自动化测试工具的 SVN 签入之上,它非常棒。在我离开之前,我工作的地方开始了一些 iPhone 开发,我相信他们也在使用 Hudson。

Plus it's free!

如果你愿意支付它,Ant Hill做所有这些你正在看。我们公司的网络团队用这个,非常强大。

处理多种语言

开箱即用,它自动化您现有的脚本并管理它们生成的工件,而不管它们是什么语言。

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

部署可以作为生成过程中的一个步骤添加。我不确定您是否希望直接部署到生产环境,但是如果管理层说您必须这样做,那么您当然可以这样做。

我也想与一个体面的代码覆盖率工具集成的东西。

他们与三叶草、科博图拉、艾玛、 Checkstyle、 CodeSonar、 Coverity、 FindBugs、 Fortify、 Klocwork、 pMD 和声纳整合在一起。

漂亮的报告是好的,但不是必要的。

I'm not sure what reports are available but there is a reports tab (I don't go in there :-) )

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

I know it can do email (and therefore sms), integrates with a few IM services.

我不担心托管,我要么在本地服务器上运行,要么在亚马逊实例上运行。

I saw a demo of them firing up a cloud session from an image, complete with an agent for deployment. We run it on a typical Linux box, but I know some folks run it on a VMWare server.

此外,这可能是天方夜谭,但是有没有什么东西也可以构建 iPhone 应用程序呢?

这可能属于第一种情况。

免责声明: 我与詹金斯共事。

在我们的组织中(规模相当大,有100多名开发人员) ,我们发现这两个特性非常有用:

  1. 基于矩阵项目安全策略的 CAS 插件
  2. Build Pipeline Plugin
  3. LTS 释放时间表。

关于你的问题:

  1. 好的
  2. SCP 插件或 SSH 插件
  3. 我们使用 FINDBUGS,静态分析收集器插件,静态程序分析插件,任务扫描器插件
  4. 之前在点3 + Jenkins DocLinks 插件
  5. 我们使用电子邮件詹金斯电子邮件扩展插件,但它也支持其他系统,如 rss,twitter 发布,短信..。
  6. 我们正在本地的雄猫主机上运行。
  7. 是的。

从非常肤浅的层面来看,竹子 VS 哈德森似乎可以归结为:

  • 竹: 使用方便,好看
  • 詹金斯: 边缘粗糙,但比竹子柔韧得多

竹和詹金斯都有许多错误(你的 威尔遇到问题) ,但至少与詹金斯你更有可能有一个工作区,直到它的修复。有了竹子,你就只能等待最新消息了。