【问题标题】:Continuous Integration System for DelphiDelphi 的持续集成系统
【发布时间】:2010-04-07 08:19:59
【问题描述】:

是否有任何用于 Delphi 的 CI 系统,例如用于 Java 的 Hudson? Hudson 有任何 Delphi 集成吗?

【问题讨论】:

    标签: delphi continuous-integration


    【解决方案1】:

    我们使用jenkins。 Jenkins 有一个RAD Studio plugin 将 Delphi 项目的编译集成到作业中。它不是必须使用它(插件),我们使用命令行工具和MSBuild来编译项目。

    project DUnItX(用于创建单元测试)与 Jenkins 无缝集成。

    在这里你可以找到一些关于 Jenkins 和 Delphi 集成的文章。介绍、安装……都是西班牙语,但您可以毫无问题地翻译,并且附带的图像和代码非常简单。

    1- Integración continua con Delphi (GIT)(介绍)
    2- Integración continua con Delphi (Jenkins) – Instalación(安装)
    3- Integración continua con Delphi (Jenkins) – Primer proyecto(第一个项目)
    4- Integración continua con Delphi (Jenkins) – Pipelines(管道使用)

    【讨论】:

      【解决方案2】:

      我们使用 Hudson :),它适用于 Delphi。

      这是我的一个项目的完整设置:

      <?xml version='1.0' encoding='UTF-8'?>
      <project>
        <actions/>
        <description></description>
        <keepDependencies>false</keepDependencies>
        <properties/>
        <scm class="hudson.scm.CVSSCM">
          <cvsroot>:sspi:cvsonly:foo@bar:/baz</cvsroot>
          <module>SIP</module>
          <canUseUpdate>false</canUseUpdate>
          <flatten>true</flatten>
          <isTag>false</isTag>
          <excludedRegions></excludedRegions>
        </scm>
        <canRoam>true</canRoam>
        <disabled>false</disabled>
        <triggers class="vector"/>
        <builders>
          <hudson.tasks.BatchFile>
            <command>&quot;C:\Program Files\Nant\bin\nant&quot; -buildfile:etc\sip.build build-d7 test</command>
          </hudson.tasks.BatchFile>
        </builders>
        <publishers>
          <hudson.tasks.BuildTrigger>
            <childProjects>quux, foozle, wibble</childProjects>
            <threshold>
              <name>SUCCESS</name>
              <ordinal>0</ordinal>
              <color>BLUE</color>
            </threshold>
          </hudson.tasks.BuildTrigger>
        </publishers>
        <buildWrappers/>
      </project>
      

      sip.build 的 delphi-7 目标构建项目的测试套件(DUnit 的 TextTestRunner),因此作业的输出只是失败/错误测试的计数,这要归功于:

      var
        R: TTestResult;
      
      begin
        R := TextTestRunner.RunRegisteredTests;
        ExitCode := R.ErrorCount + R.FailureCount;
      end;
      

      【讨论】:

      • Hudson 的 +1 - 如果你解释如何,你可能会得到更多,当然:-)
      • +1 for Hudson 我们使用 hudson + pasdoc + DUnit + InnoSetup + SourceMonitor
      • 我对哈德森很熟悉,所以我试一试。 hudson + pasdoc + DUnit + InnoSetup + SourceMonitor 的组合听起来很棒@Daniele
      • @DanieleTeti:也许您应该回答有关如何将 SourceMonitor 集成到 Hudson 的问题:stackoverflow.com/questions/3649205/…
      • @Frank Shearar 你如何处理测试结果?你用插件吗?你能详细说明你是如何让 DUnit 与 Jenkins 一起工作的吗?
      【解决方案3】:

      我们使用CruiseControl.NET,它与Delphi完美配合。

      【讨论】:

        【解决方案4】:

        Embarcadero 本身似乎使用 Hudson。请参阅 Embarcadero 开发经理 Nick Hodges 的评论。 http://blogs.embarcadero.com/nickhodges/2010/03/10/39369#comment-29952

        【讨论】:

        • 他们同时使用 Hudson 和 Cruisecontrol,具体取决于团队、产品和实施语言。主要是哈德逊。
        【解决方案5】:

        FinalBuilder Server

        现在替换为: Continua CI

        【讨论】:

        • 我们使用它没有任何问题。 FinalBuilder 始终与最新的 Delphi 版本保持同步。 (部分是用 Delphi 编写的)
        • finalbuilder.com/continua-ci 来自该站点:“不建议将 FinalBuilder Server 用于新安装。Continua CI 已取代 FinalBuilder Server 以满足您的所有持续集成需求。”
        【解决方案6】:

        Hudson 很棒,它也可以作为MSI setup 使用。较旧的 Delphi 版本(MSBuild 之前)的用户可以使用流行的 Apache Ant 和 NAnt 构建脚本环境创建构建脚本。当然也可以进行简单的命令行(批处理脚本)构建。

        其中的亮点之一 安装程序是它带有一个JRE, 要完全自给自足。这是 因为 Windows 用户通常不会 知道如何处理 *.war 文件, 他们通常不喜欢去 命令提示符和运行 Java 手动命令。

        因此无需先经过太多安装程序和命令行即可轻松尝试。

        安装后确保访问管理应用程序中的插件页面,有许多可用的扩展,对 Delphi 开发人员也很有用。插件概述在线here

        适用于 Delphi 的 Hudson 工具:还有一个适用于 Delphi 的 Code Coverage 工具,支持 Hudson here

        TeamCity 是另一个非常好的 CI 系统。它是一个商业产品,但提供最多 20 个用户的免费许可证和 3 个构建代理上的 20 个构建配置。

        Bamboo 是适用于任何语言的 CI 系统。它可从 Atlassian 获得。它的起价为 10 美元 - 这包括所有功能和无限用户,但仅限于 10 个计划,仅在安装它的服务器上运行构建。它可以使用 Amazon Elastic Compute Cloud 实例作为远程代理。

        Automated Build Studio 来自 SmartBear。借助 Automated Build Studio Server,它在 FinalBuilder 之前引入了 CI。

        【讨论】:

          【解决方案7】:

          将我们的Parabuild 添加到要检查的工具列表中 - 它几乎可以构建可以从命令行构建的任何东西 - 包括 Delphi,它提供与 Perforce 和其他版本的集成控制系统,例如 Git 和 Bazaar。

          【讨论】:

            【解决方案8】:

            Hudson 使用简单,带有一些基于 Web 的助手,因为 Delphi 项目是使用 MSBuild 构建的。

            如果您需要更多自定义和第三方工具集成(例如集成指标工具),那么 CruiseControl.NET 是理想的解决方案。

            看看我的CC.NET Dashboard page for DelphiCodeToDoc(你也可以看看配置文件)。我正在 checkout + gui 和命令行版本的编译和单元测试 + 单元测试执行和报告 + ftp 上传构建交付

            【讨论】:

              【解决方案9】:

              只是为了支持 CruiseControl.NET,因为 Delphi 2007 及更高版本基于 MSBuild,那么通过 CC.NET 构建应该没有问题。 DUUnit 有一个补丁,因此它将结果输出到 XML 文件,然后可以将其集成到构建结果图表中。

              【讨论】:

                【解决方案10】:

                errrm,你能定义你真正在寻找什么吗?

                您使用短语continuous integration,但您的意思是continuous build 以确保它可以编译和喜欢,或者您实际上是指continuous integration,因为您还运行回归测试?

                我会很好奇你是怎么做到的(自动?)。

                这并不重要,因为出色的 Hudson(绝对仅适用于 java)有许多插件,但也允许您执行 DOS 批处理脚本 - 任何您愿意编写、构建、测试、报告结果等的脚本。

                【讨论】:

                • 回归测试会很棒,但我不知道该怎么做。我知道 Hudson 非常灵活,但我真的不想编写自定义批处理脚本。开箱即用的解决方案会很好。
                【解决方案11】:

                另一个选项(虽然不是免费的,有限的用户 10 美元)是Atlassian Bamboo。 JetBrains TeamCity 是另一个免费的(用户数量有限)。我在 Delphi 2009/2010 上都试过了,它们工作得很好。两者都允许与 Perforce 以及其他 SCM 集成。

                【讨论】:

                  【解决方案12】:

                  我们使用带有Owly CI 工具的Jenkins CI 系统作为构建系统和依赖处理程序。

                  看看这个tutorial

                  初始设置不到 5 分钟

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-09-05
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-09-06
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-08-19
                    相关资源
                    最近更新 更多