什么工具用于自动夜间构建?

时间:2008-09-01 09:41:15

标签: visual-studio build-process

我有一些正在我公司工作的Visual Studio解决方案/项目,现在需要一个自动夜间构建方案。这样的方案需要能够从SVN检查最新版本,构建解决方案,创建适当的可下载文件(包括安装程序,文档等),在发生错误时向开发人员发送电子邮件以及各种其他漂亮的东西。我应该使用什么工具或工具集?

几年前我曾经使用过FinalBuilder,我很喜欢它,但我不确定它们是否支持夜间构建和电子邮件等功能。

8 个答案:

答案 0 :(得分:14)

在我的工作中,我们使用CCNET,但建立在办理登机手续的时间超过每晚 - 尽管它很容易配置为其中之一或两者。

您可以非常轻松地设置单元测试,以便在每次签到,FXCop测试以及一系列其他产品上运行。

我还建议检查Team City作为一个选项,因为它有一个免费版本,据报道报告和设置更简单(它看起来对我很好)。在它到达付费窗口之前,它确实有大约20个团队成员/项目的限制。

也就是说,我们从CCNET开始,已经增加了几个太大的产品,无法在免费版本上看到Team City,并对我们的产品非常满意。

有助于CCNET的功能包括:

  • 基于XML的配置 - 您通常可以复制并粘贴大部分所需内容。
  • 或多或少,您将能够将您的树木脚本作为构建脚本插入,并将CCNET指向此处作为运行编译的可执行任务。
  • 很多文档,很容易设置nunit,ncover,fxcop等。
  • 任务栏应用程序,可以随时让您了解项目的状态,还可以触发电子邮件或使用相同的信息保留RSS源。

但我肯定会在每次签到时运行CI构建 - 大多数情况下会在签入之前运行单元测试,但让CCNET服务器处理运行任何依赖于它的应用程序/程序集我们正在检查装配,然后重新构建,并在每次登记时重新测试。

鉴于CCNET是免费的,并且只需要很少的时间来设置 - 我强烈建议你去寻找它,看看它是否适合你,然后从那里扩展。

(这里还有另一个帖子,我发布了几乎相同/有一些改动 - 但其他一些评论也可能有所帮助!Automated Builds

编辑添加:您可以轻松地为CCNET设置自己的部署方案,并且有大量的博客文章可以提供帮助,并且电子邮件通知可以非常精细地设置,无论是在所有成功,所有失败当它从成功变为失败等时,它还内置了RSS,您甚至可以为其他系统设置自己的通知。

答案 1 :(得分:6)

FinalBuilder确实支持电子邮件,每晚只执行FinalBuilder将为您提供夜间构建。如果你不想,你真的不需要其他软件。

您还可以使用CCNet在需要时触发构建,并让它为构建执行FinalBuilder。然后,您可以决定是否应通过电子邮件发送FinalBuilder或CCNet。

最后,FinalBuilder的服务器版本与CCNet类似,因为它是使用FinalBuilder的持续集成工具。见http://www.finalbuilder.com/finalbuilder-server.aspx

当然,CCNet的最大优势在于它是免费和开源的。

答案 2 :(得分:3)

虽然费用很高,但我强烈推荐Visual Build。它适用于MSBuild和Visual Basic等旧工具。它是可编写脚本的,可以完成从安装程序到简单的持续集成的所有工作。

答案 3 :(得分:3)

我们刚开始在办公室使用Hudson

它是免费和开源的,它具有非常用户友好的用户界面。此外,还有大量的选项和插件可用。

安装后,我在几分钟内启动并运行。这里所有其他开发者都喜欢它。

总而言之,它是一个非常优雅的持续集成或夜间构建解决方案。

答案 4 :(得分:1)

我最近开始使用CruiseControl.NET(http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET)。它工作得相当好,虽然配置可能更容易。 CruiseControl.NET是免费和开源的,似乎与大多数标准工具集成,虽然我个人只将其用于CVS,SVN,NUnit和MSBuild。

答案 5 :(得分:1)

Luntbuild

支持各种源代码控制和构建系统。非常可定制。开源。安装需要一些时间,但它并不太可怕。

答案 6 :(得分:1)

Buildbot是开源的,也非常强大。你应该看看它。

答案 7 :(得分:0)

Cascade支持对提交到存储库的每个更改进行构建。

我不建议只进行夜间构建 - 这是一个非常长的窗口,在构建中断之前,构建中断可以在它报告之前滑入。