【问题标题】:Automated Builds自动化构建
【发布时间】:2008-08-31 02:09:49
【问题描述】:

我目前通过AhnkSVN 和Visual Studio 使用subversion 进行版本控制。我最近开始使用Tree Surgeon 来设置我的项目。它使用NAnt 自动创建一个构建脚本。我希望能够在 SVN 中自动构建定期项目。我喜欢在每次签入时进行构建的想法,但夜间构建也可以。我会提供更多信息或更多我的想法,但我想我会保持开放状态,看看 SO 社区怎么说。

【问题讨论】:

    标签: svn build-automation nant


    【解决方案1】:

    您可以使用CruiseControl.Net,它可以在每次签入时进行构建,每晚构建,或者您想要的任何方式。快速谷歌搜索表明 CC.Net 已经有一些integration with NAnt

    【讨论】:

      【解决方案2】:

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

      我建议您也这样做,无论是您自己还是团队内部,因为您可以非常轻松地设置单元测试以在每次签到时运行,FXCop 测试,以及大量其他产品。

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

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

      有助于 CCNET 的功能包括:

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

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

      鉴于它是免费的,而且设置时间很短 - 我强烈建议您直接使用它。

      【讨论】:

        【解决方案3】:

        在我看来,CruiseControl.NET 是您的最佳选择。如果需要,可以很容易地使用自定义任务进行扩展,开箱即用地与 NAnt 和 MSBuild 一起使用,并且非常积极地维护。

        【讨论】:

          【解决方案4】:

          还有Draco.NET,它的灵感来自CruiseControl.NET,并且更轻量级。有关这两种持续集成解决方案的更多信息,请参阅此article

          【讨论】:

            【解决方案5】:

            我建议TeamCity。 :)

            【讨论】:

              【解决方案6】:

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

              您可以查看一些实际的 buildbot 示例:

              【讨论】:

                【解决方案7】:

                您可能需要考虑 CI-Factory。它是一个使用 CruiseControl.NET 和其他十几种工具的持续集成环境构建器。这里有一个很棒的截屏视频:http://www.dnrtv.com/default.aspx?showID=64

                【讨论】:

                  【解决方案8】:

                  我们将 CruiseControl.NET 与 NAnt 和 MsBuild 一起用于我们的构建服务器。我们对其进行了配置,以便在我们每次签入代码时进行构建,以及每晚构建。

                  【讨论】:

                    【解决方案9】:

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

                    【讨论】:

                      【解决方案10】:

                      我已经使用 FinalBuilder 几年了。 FinalBuilder 的优势在于它不仅仅是构建。我将它设置为对结果进行一些分析,对构建进行存档,发送错误日志等。最新版本有一个网络界面,允许非专家通过点击来启动构建。

                      【讨论】:

                        猜你喜欢
                        • 2012-12-22
                        • 2010-10-19
                        • 2014-06-20
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2017-02-04
                        • 2019-02-17
                        相关资源
                        最近更新 更多