当前位置: 首页 > 面试题库 >

Hudson和Bamboo(aka Jenkins)与任何其他CI系统

万俟高峻
2023-03-14
问题内容

有人在Hudson和Bamboo方面都有经验吗?对这些产品的相对优势和劣势有何想法?

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

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

问题答案:

免责声明: 我在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许可证的成本相当低。

希望这可以帮助。



 类似资料:
  • 主要内容:实例,实例,实例,实例仿真控制:$finish, $stop 系统任务 调用格式 任务描述 退出仿真 $finish( type ) ; 结束仿真,参数 type 可选择退出仿真时是否打印信息 type=0: 直接退出不打印 type=1: 打印仿真时间和该语句所在的位置行信息 type=2: 打印仿真时间、位置、存储器和 CPU 时间的使用情况 暂停仿真 $stop( type ) ; 暂停仿真,用法格式与 $fin

  • 你会觉得将 Git 作为其他版本控制系统的客户端,或者在数据无损的情况下将几乎任何一个现有的仓库导入到 Git,都是一件很惬意的事。 在下一章,我们将要讲解 Git 的原始内部数据,如果需要的话你就可以加工每一个字节。

  • A task is special because knowing when a task is about to exit is useful in these circumstances: Frameworks know when to render the UI. Measuring enter/leave allows knowing total script/task time. Exi

  • 问题内容: 我的hudson CI上有大约100个工作,可以批量删除吗? 问题答案: 恕我直言,最简单的方法是使用脚本。去 通过运行以下命令删除作业: 这样,您就可以轻松使用条件筛选出要删除的作业。 对于牛仔裤 当前版本(2.x): 旧版本:

  • 7.15. 其他任务 这里有一些简单的任务,你可以自己解决: 把模板文件存放在tmpl/目录,页面数据存放在data/目录。 增加一个处理函数(handler),将对根目录的请求重定向到/view/FrontPage。 修饰页面模板,使其成为有效的HTML文件。添加CSS规则。 实现页内链接。将[PageName]修改为<a href="/view/PageName">PageName</a>。(

  • 如果你现在有一个正在使用其他 VCS 的代码库,但是你已经决定开始使用 Git,必须通过某种方式将你的项目迁移至 Git。 这一部分会介绍一些通用系统的导入器,然后演示如何开发你自己定制的导入器。 你将会学习如何从几个大型专业应用的 SCM 系统中导入数据,不仅因为它们是大多数想要转换的用户正在使用的系统,也因为获取针对它们的高质量工具很容易。 Subversion 如果你阅读过前面关于 git