19

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

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

4

8 回答 8

14

在我的工作中,我们使用 CCNET,但在每晚的签入上进行构建 - 尽管它很容易为其中一个或两个配置。

您可以非常轻松地设置单元测试以在每次签入、FXCop 测试和大量其他产品上运行。

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

也就是说,我们从 CCNET 开始,并且已经开发出一些产品太大而无法在免费版本上查看 Team City,并且对我们拥有的产品非常满意。

有助于 CCNET 的功能包括:

  • 基于 XML 的配置 - 您通常可以复制和粘贴您需要的大部分内容。
  • 或多或少您将能够将您的treesurgeon 脚本作为您的构建脚本插入,并将CCNET 指向它作为一个可执行任务来运行编译。
  • 大量文档,并且很容易设置 nunit、ncover、fxcop 等。
  • 任务栏应用程序可以让您随时了解项目的状态,它还可以启动电子邮件或保留具有相同信息的 RSS 提要。

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

鉴于 CCNET 是免费的,而且设置时间很短——我强烈建议你去看看它是否适合你,然后从那里扩展。

(这里有另一个线程,我在其中发布了几乎相同的内容/进行了一些更改 - 但其他一些评论也可能有所帮助!自动构建

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

于 2008-09-01T09:50:26.143 回答
6

FinalBuilder 确实支持通过电子邮件发送,并且每晚只执行 FinalBuilder 将为您提供每晚的构建。如果您不想这样做,您实际上并不需要其他软件。

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

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

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

于 2008-09-01T09:55:13.010 回答
3

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

于 2008-09-02T05:42:13.377 回答
3

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

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

安装后几分钟我就启动并运行了。这里的所有其他开发人员都喜欢它。

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

于 2008-10-22T14:11:26.247 回答
1

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

于 2008-09-01T09:43:42.307 回答
1

伦特建筑

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

于 2008-09-15T20:14:11.030 回答
1

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

于 2010-11-16T11:30:25.300 回答
0

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

我不建议只进行夜间构建——这是一个相当长的窗口,构建中断可能会在报告之前滑入。

于 2008-09-18T23:48:02.007 回答