我的公司正在处理一些 Visual Studio 解决方案/项目,现在需要一个自动夜间构建方案。这样的方案需要能够检查 SVN 的最新版本、构建解决方案、创建适当的可下载文件(包括安装程序、文档等)、在出现错误时向开发人员发送电子邮件以及各种其他漂亮的事情. 我应该为此使用什么工具或工具集?
几年前我曾经使用过 FinalBuilder,我非常喜欢它,但我不确定它们是否支持夜间构建和电子邮件消息等功能。
我的公司正在处理一些 Visual Studio 解决方案/项目,现在需要一个自动夜间构建方案。这样的方案需要能够检查 SVN 的最新版本、构建解决方案、创建适当的可下载文件(包括安装程序、文档等)、在出现错误时向开发人员发送电子邮件以及各种其他漂亮的事情. 我应该为此使用什么工具或工具集?
几年前我曾经使用过 FinalBuilder,我非常喜欢它,但我不确定它们是否支持夜间构建和电子邮件消息等功能。
在我的工作中,我们使用 CCNET,但在每晚的签入上进行构建 - 尽管它很容易为其中一个或两个配置。
您可以非常轻松地设置单元测试以在每次签入、FXCop 测试和大量其他产品上运行。
我还建议查看Team City作为一个选项,因为它有一个免费版本,而且据说报告和设置要简单得多(它对我来说确实不错)。在达到付费窗口之前,它确实有大约 20 个团队成员/项目的限制。
也就是说,我们从 CCNET 开始,并且已经开发出一些产品太大而无法在免费版本上查看 Team City,并且对我们拥有的产品非常满意。
有助于 CCNET 的功能包括:
但我肯定会在每次签入时运行 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 等旧工具。它是可编写脚本的,可以完成从制作安装程序到简单的持续集成的所有工作。
我们刚开始在办公室使用Hudson 。
它是免费和开源的,它有一个非常用户友好的用户界面。此外,还有大量可用的选项和插件。
安装后几分钟我就启动并运行了。这里的所有其他开发人员都喜欢它。
总而言之,它是一个非常优雅的持续集成或夜间构建解决方案。
我最近开始使用 CruiseControl.NET ( http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET )。它工作得相当好,尽管配置可能更容易。CruiseControl.NET 是免费和开源的,并且似乎与大多数标准工具集成,尽管我个人只将它与 CVS、SVN、NUnit 和 MSBuild 一起使用。
支持各种源代码控制和构建系统。非常可定制。开源。设置需要一些时间,但它并不太可怕。
Buildbot是开源的,也非常强大。你应该看看它。
Cascade支持对提交到存储库的每个更改进行构建。
我不建议只进行夜间构建——这是一个相当长的窗口,构建中断可能会在报告之前滑入。