19

Cruisecontrol 和 Hudson 是两个流行的持续集成系统。尽管这两个系统都能够很好地进行自动连续构建,但创建批处理或 bash 构建脚本,然后使用 Windows 调度程序或 cron 来安排构建似乎要容易得多。

是否有更好的 C++ 项目可用的持续集成系统?或者只是使用脚本和调度程序更简单?

4

6 回答 6

13

我们一直在 C++ 项目中使用CruiseControl进行 CI。虽然它是我们使用 ant 的唯一用途,但 CruiseControl 的 ant 构建脚本只是启动了我们正常的构建脚本,所以它非常简单,我们很长一段时间都不需要更新它。因此,CrusieControl 基于 Java 的事实对我们来说根本不是问题。

使用巡航控制之类的主要好处是

  • 一个显示构建状态的漂亮网页
  • 每次构建后或构建失败后发送电子邮件
  • 提交到源代码控制系统后自动构建
  • 一个用于监控构建状态的 Firefox 插件
  • 显示任何构建错误的输出。
  • 显示自上次构建以来发生了哪些文件更改(有助于查看哪个开发人员破坏了构建)

当然,您可以自己编写一个脚本来完成所有这些工作,但为什么所有这些工作都有效呢?从长远来看,设置 CruiseControl(或类似的东西)的额外初始成本可能远低于维护和更新自定义 CI 构建脚本的成本。

如果您只需要启动每日构建并且由 cron 启动的简单脚本就足以满足您的需求,那么请务必这样做。但是,CI 的优点之一是您在每次签入后都会获得构建状态报告。编写脚本来完成这项工作需要更多的工作,而 CruiseControl 已经做到了。

于 2008-09-28T12:22:26.683 回答
11

我们将Hudson用于 CI,SonarQube用于代码度量。它们是集成的,而且 Hudson 有一些 cronjob 无法击败的插件。

一个很棒的插件是 CI Game,它记录了谁破坏了构建以及谁在没有破坏它的情况下提交。Hudson 有插件可以使用 VMWare、Selenium、SVN、CSV、Git。它具有 RSS 联合功能,可以帮助您将其他所有内容自动化。

哈德森很好...

于 2009-04-17T03:53:08.793 回答
4

我一直在成功地将Buildbot用于Spring RTS 引擎项目。

于 2008-09-28T11:17:57.917 回答
4

我们一直在使用Dart Dashboard。它是开源的,但由KitWare驱动。从那以后,他们将名称更改为Cdash,我认为它仍然有能力。我们正在进行多种测试,包括在调试和发布模式下跨 10 个不同平台的夜间和持续集成,以及运行 1000 次应用程序测试并在那里报告结果。

于 2008-09-28T13:38:39.217 回答
2

您也可以尝试JetBrains 的 TeamCity。它是一个商业产品,但它提供了最多 20 个构建配置的免费许可证。

于 2008-09-28T13:46:13.580 回答
1

持续集成 (CI) 工具的优点之一是每次将某些内容签入源代码控制存储库时都会触发构建。

如果这不是您需要的,那么您可能最好使用 Windows 任务调度程序或 cron 作业。

此外,CI 工具还带有(Web)仪表板和高级日志记录功能。

Your question seems to me more "why would I use a CI tool" then "which CI tool should I use". If a batch script serves your needs, please use that. (Re)creating a build environment only becomes easier if you do not need a CI tool as an additional component. If you want source control triggered build, a dashboard, storage of old build results or other logging, use a CI tool and avoid developing all such functions in batch or shell scripts.

于 2010-02-02T17:56:17.600 回答