Delphi的持续集成系统

32

是否有像Java的Hudson一样适用于Delphi的CI系统?Hudson是否有Delphi集成?

12个回答

23

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

6
赞成Hudson - 如果你解释如何做,你可能会得到更多赞同 :-) - Mawg says reinstate Monica
2
我们使用Hudson + Pasdoc + DUnit + InnoSetup + SourceMonitor,对于Hudson点赞。 - Daniele Teti
2
我熟悉Hudson,所以我会尝试一下。结合Hudson + Pasdoc + DUnit + InnoSetup + SourceMonitor听起来不错 @Daniele - Ludwig Wensauer
@DanieleTeti:也许你应该回答一下如何将SourceMonitor集成到Hudson的问题:https://dev59.com/33A65IYBdhLWcg3wxBer - neves
@Frank Shearar 你拿测试结果怎么办?你使用插件吗?你能详细说明一下如何让DUnit与Jenkins配合工作吗? - Remi
现在已经过去5年了,但当我写这篇文章时,DUnit生成了一个JUnit兼容的测试结果文件,Jenkins可以理解(可能是通过一个标准插件)。 - Frank Shearar

17

1
我们一直无问题地使用它。FinalBuilder始终与最新的Delphi版本保持同步。(它部分用Delphi编写) - Robert Love
1
FinalBuilder Server 不建议进行新的安装。 Continua CI 已经取代 FinalBuilder Server,成为您所有持续集成需求的首选。 - none

8

6

他们根据团队、产品和实现语言的不同,使用Hudson和Cruisecontrol两种工具。但大多数情况下会使用Hudson。 - Warren P

6

Hudson 是一个很好的工具,同时也可以作为 MSI 安装程序 使用。使用旧版 Delphi(MSBuild 之前的版本)的用户可以使用流行的 Apache Ant 和 NAnt 构建脚本环境创建构建脚本。当然,也可以进行简单的命令行(批处理脚本)构建。

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

所以,您可以轻松尝试而不必经过太多安装程序和命令行。

安装后,请务必访问管理应用程序中的插件页面,那里有许多扩展可供 Delphi 开发人员使用。插件概述在此 链接

Hudson Delphi工具: 还有一个代码覆盖工具,支持Hudson和Delphi,在此处可获得。 TeamCity是另一个非常好的CI系统。它是一款商业产品,但对于最多20个用户和20个构建配置的3个构建代理提供免费许可证。 Bamboo是适用于任何语言的CI系统。它来自Atlassian。其价格从$10起 - 包括所有功能和无限用户,但仅限于在安装它的服务器上运行构建的10个计划。它可以使用Amazon Elastic Compute Cloud实例作为远程代理。 Automated Build Studio来自SmartBear。通过Automated Build Studio Server,在FinalBuilder之前引入了CI。

2
我们使用Jenkins。 Jenkins有一个RAD Studio插件,可以将Delphi项目的编译集成到作业中。不必使用它(插件),我们使用命令行工具和MSBuild来编译项目。 DUnItX项目(用于创建单元测试)与Jenkins无缝集成。
在这里,您可以找到一些关于Jenkins和Delphi集成的文章。介绍、安装等都是用西班牙语编写的,但您可以轻松翻译,并且包含的图片和代码非常简单。

1- Delphi的持续集成(GIT) (简介)
2- Delphi的持续集成(Jenkins) - 安装 (安装)
3- Delphi的持续集成(Jenkins) - 第一个项目 (第一个项目)
4- Delphi的持续集成(Jenkins) - 流水线的使用 (使用流水线)


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

0

Hudson 很容易使用,具有一些基于Web的助手,因为 Delphi 项目是使用 MSBuild 构建的。

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

请查看我的 CC.NET Dashboard page for DelphiCodeToDoc(您还可以查看配置文件)。我正在执行检出+GUI 和命令行版本的编译+单元测试+单元测试执行和报告+FTP 上传构建交付


0

我想支持CruiseControl.NET,因为Delphi 2007及以上版本都是基于MSBuild构建的,所以通过CC.NET进行构建不应该有任何问题。DUnit有一个补丁可以将结果输出到XML文件中,然后可以将其集成到构建结果图表中。


0

嗯,你能定义一下你实际上在寻找什么吗?

你使用了“持续集成”的短语,但是你是指只是“持续构建”以确保它编译和喜欢,还是你实际上是指“持续集成”,也就是说你还运行回归测试?

我很好奇你是如何做到的(Auto-it?)。

虽然这并不太重要,因为美妙的Hudson(决不仅仅适用于Java)有许多插件,但也允许你执行DOS批处理脚本 - 任何你想写的脚本,来构建、测试、报告结果等。


回归测试很好,但我不确定如何执行它们。我知道Hudson非常灵活,但我真的不想编写自定义批处理脚本。一个开箱即用的解决方案会很好。 - Ludwig Wensauer

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