前段时间我曾请求帮助获得 continuous integration working in Delphi。一个方面的答案有部分不完整的(不适合我)信息 [here][2] 用于使用巡航控制。

我已经让 Jenkins/Hudson 工作了,关于它的简单部分是(使用 Delphi)配置完全通过 Web 浏览器完成。然而,CruiseControl.net 的设置要困难得多。

我希望看到一个示例 ccnet.config,它将使用来自 CruiseControl 的 MSBUILD 构建一个 hello-world delphi 项目 (Project1.dproj),并在每次修改 subversion(或 mercurial)上游源时自动重建。

到目前为止,我有:

  • 安装并获得 CruiseControl.net 版本 1.6.7981 并运行。
  • 我的 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/

    10-13 05:18