代码之家  ›  专栏  ›  技术社区  ›  Assaf Lavie

配置CruiseControl.net项目目录

  •  2
  • Assaf Lavie  · 技术社区  · 16 年前

    CruiseControl.net(默认情况下)为每个项目在以下位置创建一个子目录: c:\Program File\CruiseControl.NET\server

    3 回复  |  直到 16 年前
        1
  •  7
  •   Giles Roberts    12 年前

    设置项目的工作目录和工件目录,就完成了。它们默认为:

    • [ccnet-install-dir]\[project-name]\WorkingDirectory
    • [ccnet-install-dir]\[project-name]\Artifacts .

    例如,如果您将这些目录设置为。。。

    • [projects-dir]\[project-name]\WorkingDirectory
    • [projects-dir]\[project-name]\Artifacts

    ... 您可以安全地删除 [ccnet-install-dir]\[project-name] 子树(您将失去项目构建历史记录)。

    <project name="foo">
      [...]
      <workingDirectory>C:\projects\foo\WorkingDirectory</workingDirectory>
      <artifactDirectory>C:\projects\foo\Artifacts</artifactDirectory>
      [...]
    </project>
    
        2
  •  0
  •   Sebastiaan M    16 年前

    可能不是您等待的答案,但可能仍然很有趣:我们正在使用大约20台构建机器,其中包含大约50种不同的构建。因为将数据与程序文件混合确实不是一个好主意,所以我们决定将ccnet安装置于源代码控制中。每个服务器在该目录中都有自己的配置文件(也在源代码管理中),本地批处理文件或快捷启动ccnet指定使用哪个配置文件。这意味着本地数据(构建日志)与perforce(ccnet二进制文件/配置文件)中的数据混合在一起,但我们接受这种情况。希望这有帮助。

    当做

        3
  •  0
  •   Frederik Gheysels    16 年前

    ccnet.exe.config和ccservice.exe.config。

    第一个配置文件在您使用console应用程序运行CC.NET时使用,第二个配置文件在您将CC.NET作为服务启动时使用。

    在这些文件中,您应该找到一个配置设置,该设置指向可以找到描述项目构建过程的配置文件的位置。

    编辑: 在ccservice.exe.config文件中,您将在appSettings部分找到一个名为ccnet.config的密钥。将此键的值更改为要放置ccnet.config文件的路径。
    如果此密钥不存在,您可以添加它:

    <appSettings>
        <!-- Without this appSetting ccservice will look for ccnet.config in its own directory. -->
        <add key="ccnet.config" value="D:\CCNetConfigFiles\ccnet.config"/>
    </appSettings>
    

    我就是这样做的:

    • 我已经更改了ccservice.exe.config文件中的ccnet.config应用设置,以便CruiseControl.NET在不同的位置而不是标准位置搜索ccnet.config文件。(如上所述)。(我知道你不想这样做?)
    • 我已经更改了ccnet.config文件本身,因此它看起来如下所示:
    <!DOCTYPE cruisecontrol [
        <!ENTITY project1        SYSTEM "file:D:\CCNETConfigFiles\project1\project1buildconfig.xml.config">
        <!ENTITY project2        SYSTEM "file:D:\CCNETConfigFiles\project2\project2buildconfig.xml.config">
        <!ENTITY project3    SYSTEM "file:D:\CCNETConfigFiles\project3\project3buildconfig.xml.config">
    ]>
    <cruisecontrol>
    
      &project1;
      &project2;
      &project3;
    
    </cruisecontrol>
    

    • 然后,我只需确保在每个项目配置文件中删除cruisecontrol标记,否则ccnet.config文件将无法根据模式进行验证。