War*_* P 4 delphi cruisecontrol.net continuous-integration delphi-xe
前段时间我问过帮助在Delphi中进行持续集成工作.对于使用巡航控制,一个侧面答案有部分不完整(不适合我)的信息[这里] [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>
Run Code Online (Sandbox Code Playgroud)
更新:我原本无法c:\builds\ccnet.config
从ccnet.exe 读取它,但我发现我可以使用命令行参数运行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>
Run Code Online (Sandbox Code Playgroud)
您可以$(MSBuildPath)
通过以下方式定义变量:
<cb:define MSBuildPath="C:\WINDOWS\Microsoft.NET\Framework\v3.5" />
Run Code Online (Sandbox Code Playgroud)
或者直接用真实路径替换它.