哪种持续集成工具最适合 C++ 项目?
Cruisecontrol 和 Hudson 是两个流行的持续集成系统.尽管这两个系统都能够很好地进行自动连续构建,但创建批处理或 bash 构建脚本,然后使用 Windows 调度程序或 cron 来安排构建似乎要容易得多.
Cruisecontrol and Hudson are two popular continuous integration systems. Although both systems are able to do the automated continuous builds nicely, it just seems a lot easier to create a batch or bash build script, then use Windows scheduler or cron to schedule builds.
是否有更好的 C++ 项目可用的持续集成系统?还是只是使用脚本和调度程序更简单?
Are there better continuous integration systems available for C++ projects? Or is just using a script and a scheduler the simpler way?
推荐答案
我们一直在使用 CruiseControlC++ 项目中的 CI.虽然它是我们使用 ant 的唯一用途,但 CruiseControl 的 ant 构建脚本只是启动了我们正常的构建脚本,所以它非常简单,我们很长一段时间都不需要更新它.因此,CrusieControl 基于 Java 的事实对我们来说根本不是问题.
We have been using CruiseControl for CI on a C++ project. While it is the only thing we use ant for, the ant build script for CruiseControl just starts our normal build script, so it is very simple and we haven't really needed to update it in a long while. Therefore the fact that CrusieControl is Java based has not really been an issue at all for us.
使用巡航控制之类的主要好处是
The main benefits of using something like cruise control are
- 一个显示构建状态的漂亮网页
- 每次构建后或构建失败后发送电子邮件
- 在提交到源代码控制系统后自动构建
- 一个用于监控构建状态的 firefox 插件
- 显示任何构建错误的输出.
- 显示自上次构建以来发生了哪些文件更改(有助于查看哪个开发人员破坏了构建)
当然,您可以自己编写一个脚本来完成所有这些工作,但为什么所有这些工作都有效?从长远来看,设置 CruiseControl(或类似的东西)的额外初始成本可能远低于维护和更新自定义 CI 构建脚本的成本.
Of course you can write a script yourself which does all of this, but why do all that work? In the long run the extra initial cost of setting up CruiseControl (or something similar) is probably much less than the cost of maintaining and updating a custom CI build script.
如果您只需要启动每日构建并且由 cron 启动的简单脚本就足以满足您的需求,那么请务必这样做.但是,CI 的优点之一是您可以在每次签入后获得构建状态报告.为此编写脚本需要更多的工作,而 CruiseControl 已经做到了.
If all you need is to launch a daily build and a simple script started by cron is sufficient for your needs then by all means do that. However, one of the advantages of CI is that you get a build status report after every check in. Writing a script to do that takes more work and CruiseControl already does it.
相关文章