自动构建

8
我目前使用subversion作为版本控制,通过AhnkSVN和Visual Studio来操作。最近开始使用Tree Surgeon来设置我的项目。它会自动创建一个使用NAnt的构建脚本。我想能够定期自动化构建SVN中的项目。我喜欢在每次提交时进行构建的想法,但每晚构建也可以。我可以提供更多信息或更多想法,但我想开放一下,看看SO社区有什么想法。
10个回答

5
你可以使用CruiseControl.Net,它可以在每次检入、每晚构建或者任何你想要的方式上进行构建。快速的谷歌搜索表明CC.Net已经与NAnt 集成了一些。

4

正如其他人所提到的,我们在这里使用CCNET,通常不会使用夜间构建,而是采用持续集成策略(每次检入)。

我建议您也这样做,无论是自己还是团队内部,因为您可以非常容易地设置单元测试以在每次检入时运行,FXCop测试以及一系列其他产品。

如果只有你一个人的团队,并且你没有太多的项目在进行中,我还建议你查看Team City作为一个选项,因为它有一个免费版本,报告和设置据说要简单得多(对我来说看起来很不错)。

话虽如此,我们从CCNET开始,已经发展了几个产品,过于庞大,无法在免费版本上查看Team City,但我们对我们所拥有的东西非常满意。

有助于CCNET的功能包括:

  • 基于XML的配置 - 你通常可以复制并粘贴大部分需要的内容。
  • 你可以将树医脚本插入作为构建脚本,并将CCNET指向该脚本作为可执行任务来运行编译。
  • 有很多文档,非常容易设置nunit、ncover、fxcop等工具。
  • 任务栏应用程序可以让你随时了解项目的状态,并且还可以发送电子邮件或保持相同信息的RSS源。

但我肯定会选择在每次提交时运行CI构建 - 大部分情况下,在提交之前会运行单元测试,但是让CCNET服务器处理与我们正在检查的程序集存在依赖关系的任何应用程序/程序集,并在每次提交时重新构建和重新测试它们。

考虑到它是免费的并且设置所需的时间非常少 - 我强烈建议尝试一下。


3

在我看来,CruiseControl.NET是您最好的选择。它非常容易通过自定义任务进行扩展,如果需要,可以直接使用NAnt和MSBuild,并且得到了积极维护。


1

我非常喜欢 buildbot。它是开源的,用Python编写,非常容易部署、开发和维护。它可以轻松地与svn和大多数其他源代码控制系统集成。所有的构建脚本都是Python代码,因此您在核心构建主脚本方面具有很大的灵活性。当然,您也可以使用它来启动任何其他类型的脚本或批处理文件。

您可以查看一些buildbot实例:


1

还有Draco.NET,它受CruiseControl.NET的启发,更加轻量级。请参阅此文章以获取有关这两种持续集成解决方案的更多信息。


1

0

Cascade支持在每次提交到代码库时进行构建。


0
我已经使用FinalBuilder几年了。FinalBuilder的优点在于它不仅仅是构建工具。我将其设置为分析结果、创建构建存档、发送错误日志等。最新版本还有一个Web界面,使得非专家也可以轻松启动构建过程。

0

0
我们在构建服务器上使用CruiseControl.NET,同时结合NAnt和MsBuild。我们进行了配置,使得每次代码检入时都会进行构建,并且还有夜间构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接