Cruisecontrol和Hudson是两种流行的持续集成系统.虽然两个系统都能够很好地完成自动连续构建,但创建批处理或bash构建脚本似乎要容易得多,然后使用Windows调度程序或cron来安排构建.
是否有更好的持续集成系统可用于C++项目?或者只是使用脚本和调度程序更简单的方法?
我们一直在C++项目中使用CruiseControl for CI.虽然它是我们唯一使用ant的东西,但CruiseControl的ant构建脚本只是启动我们的正常构建脚本,所以它非常简单,我们不需要在很长一段时间内更新它.因此,CrusieControl基于Java的事实对我们来说根本不是一个问题.
使用巡航控制等功能的主要好处是
一个很好的网页显示构建状态
每次构建后或构建失败后发送电子邮件
在提交源控制系统后自动构建
用于监视构建状态的firefox插件
显示任何构建错误的输出.
显示自上次构建以来哪些文件已更改(有助于查看哪个开发人员破坏了该buid)
当然你可以自己编写一个完成所有这些操作的脚本,但为什么这样做呢?从长远来看,设置CruiseControl(或类似的东西)的额外初始成本可能远低于维护和更新自定义CI构建脚本的成本.
如果您只需要启动每日构建,并且由cron启动的简单脚本足以满足您的需求,那么请务必执行此操作.但是,CI的一个优点是每次签入后都会获得一个构建状态报告.编写一个脚本来完成这项工作需要更多的工作,而CruiseControl已经完成了.
我们将Hudson用于CI和SonarQube用于代码度量.它们是集成的,Hudson有一些插件,没有cronjob可以击败.
一个很棒的插件是CI游戏,它可以分析谁破坏了构建版本以及谁在不破坏它的情况下提交.Hudson有插件可以使用VMWare,Selenium,SVN,CSV,Git.它有RSS联合,可以帮助您自动化更多其他一切.
哈德森很棒......