自动化构建
我目前通过AhnkSVN和Visual Studio将Subversion用于版本控制。我最近开始使用Tree Surgeon设置我的项目。它使用NAnt自动创建一个构建脚本。我希望能够自动在SVN中定期构建项目。我喜欢在每次签入时进行构建的想法,但每晚构建也可以。我会提供更多的信息或者更多的想法,但是我想让它保持开放状态,看看SO社区必须说些什么。
解决方案
回答
我们可以使用CruiseControl.Net,它可以在每次签入,每晚构建或者我们想执行的任何操作上进行构建。谷歌的快速搜索表明CC.Net已经与NAnt集成。
回答
还有Draco.NET,它受CruiseControl.NET的启发,重量更轻一些。有关这两种持续集成解决方案的更多信息,请参见本文。
回答
我认为CruiseControl.NET是我们最好的选择。如果需要,可以轻松扩展自定义任务,可以同时使用NAnt和MSBuild,并且维护非常积极。
回答
我们可能要考虑CI-Factory。它是一个持续集成环境的构建器,它使用CruiseControl.NET和许多其他工具。这里有一个很好的截屏视频:http://www.dnrtv.com/default.aspx?showID=64
回答
正如其他人提到的,我们在这里使用CCNET,我们通常不进行夜间构建,而是采用持续集成策略(每次签入)。
无论是我们本人还是团队内部,我都建议我们这样做,因为我们可以非常轻松地设置单元测试以在每个签入,FXCop测试以及许多其他产品上运行。
如果是一个人的团队中的我们,并且我们没有太多的项目在进行中,我还建议我们查看Team City作为一个选项,因为它具有免费版本,并且报告和设置很多更简单(对我来说确实不错)。
就是说,我们从CCNET开始,并且已经增加了几种产品,它们太大了,无法在免费版本上查看Team City,并且对我们拥有的产品感到非常满意。
有助于CCNET的功能包括:
- 基于XML的配置-我们通常可以复制并粘贴大部分所需内容。
- 或者多或者少,我们将能够将treesurgeon脚本作为构建脚本插入,并将CCNET指向可执行任务以运行编译。
- 很多文档,并且非常容易设置nunit,ncover,fxcop等。
- Taskbar应用程序可让我们随时了解项目的状态,还可以触发电子邮件或者保留具有相同信息的RSS feed。
但是我肯定会在每次签入时都运行CI构建,大多数情况下会在签入之前运行单元测试,但是让CCNET服务器处理运行将依赖于我们所使用的程序集的任何应用程序/程序集签入,然后重新构建它们,并在每次签入时进行重新测试。
鉴于它是免费的,并且花费很少的时间进行设置,因此我强烈建议我们这样做。
回答
我们将NAnt和MsBuild都使用CruiseControl.NET作为构建服务器。我们对其进行了配置,以便每次我们检入代码时都可以进行构建,也可以进行夜间构建。
回答
我建议TeamCity。 :)
回答
Cascade支持对提交到存储库的每个单个更改进行构建。
回答
我非常喜欢buildbot。它是开源的,用python编写,非常易于部署,开发和维护。它可以轻松地与svn和大多数其他源代码控制系统集成。我们所有的构建脚本都是python代码,因此我们在核心Build Master脚本可以做什么方面具有很大的灵活性。当然,我们也可以使用它来触发任何其他类型的脚本或者批处理文件。
我们可能会查看一些运行中的buildbot示例:
- GNOME
- Python
- 地形学
回答
我已经使用FinalBuilder几年了。 FinalBuilder的优点是它所做的不仅仅是构建。我设置了它来对结果进行一些分析,对构建进行存档,发送错误日志等。最新版本具有Web界面,该界面不允许专家单击来进行构建。