使用什么工具进行自动夜间构建?
我公司中正在处理一些Visual Studio解决方案/项目,现在需要一种自动夜间构建方案。这样的方案必须能够检查SVN的最新版本,构建解决方案,创建适当的可下载文件(包括安装程序,文档等),在发生错误和各种其他奇妙的事情时向开发人员发送电子邮件。 。我应该为此使用什么工具或者工具集?
几年前,我曾经使用过FinalBuilder,对此我非常喜欢,但是我不确定它们是否支持夜间构建和电子邮件之类的功能。
解决方案
回答
我最近开始使用CruiseControl.NET(http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET)。尽管配置可能会更容易,但它工作得相当好。 CruiseControl.NET是免费和开源的,并且似乎与大多数标准工具集成在一起,尽管我个人仅将其与CVS,SVN,NUnit和MSBuild一起使用。
回答
在我的工作中,我们使用CCNET,但是虽然可以很容易地为其中一个或者两个进行配置,但它比每天晚上更能使用签入。
我们可以非常轻松地设置单元测试以在每个签入,FXCop测试以及一系列其他产品上运行。
我还建议我们选择" Team City"作为选项,因为它有一个免费版本,并且报告和设置据说要简单得多(对我来说确实不错)。在到达付费窗口之前,它确实有大约20个团队成员/项目的限制。
就是说,我们从CCNET开始,并且已经增加了几种产品,它们太大了,无法在免费版本上查看Team City,并且对我们拥有的产品感到非常满意。
有助于CCNET的功能包括:
- 基于XML的配置-我们通常可以复制并粘贴大部分所需内容。
- 或者多或者少,我们将能够将treesurgeon脚本作为构建脚本插入,并将CCNET指向可执行文件来运行编译。
- 很多文档,并且非常容易设置nunit,ncover,fxcop等。
- Taskbar应用程序可让我们随时了解项目的状态,还可以触发电子邮件或者保留具有相同信息的RSS feed。
但是我肯定会在每次签入时都运行CI构建,大多数情况下会在签入之前运行单元测试,但是让CCNET服务器处理运行将依赖于我们所使用的程序集的任何应用程序/程序集签入,然后重新构建它们,并在每次签入时进行重新测试。
鉴于CCNET是免费的,并且花费很少的时间进行设置,因此我强烈建议我们先尝试一下它,看看它是否适合我们,然后从那里进行扩展。
(这里有另一个线程,我在其中发布了几乎相同的内容/进行了一些更改,但其他一些注释也可能有帮助!自动化构建)
编辑添加:我们可以轻松地为CCNET设置自己的部署方案,并且有大量的博客文章可以提供帮助,并且可以在所有成功,所有失败或者失败的情况下相当精细地设置电子邮件通知。从成功到失败等变化。还内置了RSS,我们甚至可以为其他系统设置自己的通知程序。
回答
FinalBuilder确实支持通过电子邮件发送邮件,仅每晚执行一次FinalBuilder即可进行每晚构建。如果不想,我们实际上不需要其他软件。
我们还可以在需要时使用CCNet触发构建,并使其执行FinalBuilder进行构建。然后,我们可以决定是否应使用FinalBuilder或者CCNet发送电子邮件。
最后,FinalBuilder具有类似于CCNet的服务器版本,因为它是使用FinalBuilder的持续集成工具。参见http://www.finalbuilder.com/finalbuilder-server.aspx
当然,CCNet的最大优点是它是免费和开源的。
回答
虽然要花钱,但我还是强烈建议Visual Build。它可与MSBuild和旧工具(如Visual Basic)一起使用。它是可编写脚本的,并且可以完成从安装程序到简单的持续集成的所有操作。
回答
Luntbuild
支持多种源代码控制和构建系统。非常可定制的。开源。设置程序需要一些时间,但是并不太可怕。
回答
Cascade支持对提交到存储库的每个单个更改进行构建。
我不建议仅每晚进行一次构建-这是一个相当长的窗口,在报告之前,构建中断可能会进入。
回答
我们刚刚在这里开始使用Hudson。
它是免费和开源的,它具有非常用户友好的UI。另外,还有大量的选项和插件可用。
安装后,我在几分钟内就启动并运行了。这里的所有其他开发人员都喜欢它。
总而言之,它是用于持续集成或者每夜构建的非常优雅的解决方案。
回答
Buildbot是开源的,功能也非常强大。我们应该看看它。