前段时间我曾请求帮助获得 continuous integration working in Delphi。一个方面的答案有部分不完整的(不适合我)信息 [here][2] 用于使用巡航控制。
我已经让 Jenkins/Hudson 工作了,关于它的简单部分是(使用 Delphi)配置完全通过 Web 浏览器完成。然而,CruiseControl.net 的设置要困难得多。
我希望看到一个示例 ccnet.config,它将使用来自 CruiseControl 的 MSBUILD 构建一个 hello-world delphi 项目 (Project1.dproj),并在每次修改 subversion(或 mercurial)上游源时自动重建。
到目前为止,我有:
ccnet.config
这是我的 ccnet.config,最初我有
<exec>
并按照下面的建议更改为 <msbuild>
:<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<!-- CRUISECONTROL.NET Server configuration -->
<project name="Project1">
<tasks>
<msbuild>
<projectFile>project1.dproj</projectFile>
</msbuild>
</tasks>
</project>
</cruisecontrol>
更新:我最初无法让它从 ccnet.exe 读取
c:\builds\ccnet.config
,但我发现我可以使用命令行参数运行 ccnet.exe(非服务模式),这让我解决了找到 ccnet.config 的问题。 最佳答案
这是一个项目的示例配置块,如果存在修改,将在 05:00 重建:
<!-- DelphiCodeToDoc Project -->
<project name="DelphiCodeToDoc" queue="Q1" queuePriority="1">
<category>Delphi</category>
<artifactDirectory>$(ArtifactBaseDir)\DelphiCodeToDoc</artifactDirectory>
<workingDirectory>$(WorkingBaseDir)\DelphiCodeToDoc</workingDirectory>
<triggers>
<scheduleTrigger time="05:00" buildCondition="IfModificationExists" name="Scheduled" />
</triggers>
<!-- SVN implementation -->
<sourcecontrol type="svn">
<trunkUrl>http://dephicodetodoc.svn.sourceforge.net/svnroot/dephicodetodoc/trunk/DelphiCodeToDoc/</trunkUrl>
<workingDirectory>$(WorkingBaseDir)\DelphiCodeToDoc</workingDirectory>
</sourcecontrol>
<!-- Build tasks to implement -->
<tasks>
<!-- Compile command-line application -->
<msbuild>
<executable>$(MSBuildPath)\MSBuild.exe</executable>
<workingDirectory>$(WorkingBaseDir)\DelphiCodeToDoc\Source</workingDirectory>
<projectFile>DCTD_cmd.dproj</projectFile>
<buildArgs>/target:Build /p:Config=Debug</buildArgs>
<timeout>900</timeout>
<logger>$(MSBuildLogger)</logger>
</msbuild>
<!-- Publishing compiled results -->
<publishers>
<merge>
<files>
<file>$(ArtifactBaseDir)\DelphiCodeToDoc\buildlogs*.xml</file>
</files>
</merge>
<!-- Statistics -->
<xmllogger />
<rss/>
<statistics>
</statistics>
</publishers>
</project>
您可以通过以下方式定义变量
$(MSBuildPath)
: <cb:define MSBuildPath="C:\WINDOWS\Microsoft.NET\Framework\v3.5" />
或者直接用真实路径替换。
关于delphi - 与 msbuild 和 delphi XE 一起使用的示例 Cruisecontrol.net ccnet.config?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9739652/