是否有像Java的Hudson一样适用于Delphi的CI系统?Hudson是否有Delphi集成?
是否有像Java的Hudson一样适用于Delphi的CI系统?Hudson是否有Delphi集成?
我们使用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>"C:\Program Files\Nant\bin\nant" -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;
现在已被替代为: Continua CI
看起来Embarcadero自己也在使用Hudson。详情请见Embarcadero的开发经理Nick Hodges的评论。http://blogs.embarcadero.com/nickhodges/2010/03/10/39369#comment-29952
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。1- Delphi的持续集成(GIT) (简介)
2- Delphi的持续集成(Jenkins) - 安装 (安装)
3- Delphi的持续集成(Jenkins) - 第一个项目 (第一个项目)
4- Delphi的持续集成(Jenkins) - 流水线的使用 (使用流水线)
Hudson 很容易使用,具有一些基于Web的助手,因为 Delphi 项目是使用 MSBuild 构建的。
如果您需要更多自定义和第三方工具集成(例如集成度量工具),那么 CruiseControl.NET 是理想的解决方案。
请查看我的 CC.NET Dashboard page for DelphiCodeToDoc(您还可以查看配置文件)。我正在执行检出+GUI 和命令行版本的编译+单元测试+单元测试执行和报告+FTP 上传构建交付。
我想支持CruiseControl.NET,因为Delphi 2007及以上版本都是基于MSBuild构建的,所以通过CC.NET进行构建不应该有任何问题。DUnit有一个补丁可以将结果输出到XML文件中,然后可以将其集成到构建结果图表中。
嗯,你能定义一下你实际上在寻找什么吗?
你使用了“持续集成”的短语,但是你是指只是“持续构建”以确保它编译和喜欢,还是你实际上是指“持续集成”,也就是说你还运行回归测试?
我很好奇你是如何做到的(Auto-it?)。
虽然这并不太重要,因为美妙的Hudson(决不仅仅适用于Java)有许多插件,但也允许你执行DOS批处理脚本 - 任何你想写的脚本,来构建、测试、报告结果等。