Delphi持续集成系统

时间:2010-04-07 08:19:59

标签: delphi continuous-integration

是否有像Hudson for Java那样的Delphi CI系统? Hudson有没有任何Delphi集成?

12 个答案:

答案 0 :(得分:21)

我们使用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;

答案 1 :(得分:16)

答案 2 :(得分:8)

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

答案 3 :(得分:6)

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

答案 4 :(得分:5)

Hudson 非常棒,也可以MSI setup的形式提供。旧版Delphi版本(MSBuild之前版本)的用户可以使用流行的Apache Ant和NAnt构建脚本环境创建构建脚本。当然也可以使用简单的命令行(批处理脚本)构建。

  

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

因此,在没有经过太多安装程序和命令行的情况下尝试很容易。

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

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

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

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

来自SmartBear的

Automated Build Studio 。使用Automated Build Studio Server,它在FinalBuilder之前的某个时间引入了CI。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

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

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

错误,您能定义一下您实际需要的内容吗?

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

我会如何做到这一点(自动?)。

并不是说真的太重要了,因为精彩的Hudson(它绝对不是仅适用于java)有很多插件,但也允许你执行DOS批处理脚本 - 任何您需要编写,构建,测试,报告结果等的脚本。

答案 9 :(得分:0)

另一种选择(虽然不是免费的,有限的#用户10美元)是Atlassian Bamboo。而JetBrains TeamCity是另一个免费的(用户数量有限)。我已经尝试过使用Delphi 2009/2010,并且它们运行良好。两者都允许与其他SCM的Perforce集成。

答案 10 :(得分:0)

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

看看这个tutorial

初始设置不到5分钟

答案 11 :(得分:0)

我们使用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(使用管道)