【问题标题】:Only one project of two running in my CruiseControl.net config我的 CruiseControl.net 配置中只有一个两个项目在运行
【发布时间】:2008-10-31 20:31:52
【问题描述】:

我是第一次创建集成服务器,虽然我的 Cruisecontrol 配置文件中有两个项目,但似乎只有第一个正在执行。我的配置文件粘贴在下面。

<cruisecontrol>

    <project name="cc-config">
        <triggers>
            <intervalTrigger seconds="60" />
        </triggers>
        <sourcecontrol type="svn">
            <trunkUrl></trunkUrl>
            <workingDirectory>C:\Program Files (x86)\CruiseControl.NET\server\config</workingDirectory>
        </sourcecontrol>
    </project>

    <project name="stable_trunk">
        <workingDirectoy>C:\working</workingDirectory>
        <artifactDirectory>C:\artifact</artifactDirectory>
        <triggers>
            <intervalTrigger name="continuous" seconds="60"/>
        </triggers>
        <sourcecontrol type="svn">
            <trunkUrl></trunkUrl>
            <workingDirectory>C:\projects\security\trunk</workingDirectory>
        </sourcecontrol>
        <tasks>
            <nant>
                <executable>C:\projects\security\trunk\tools\nant-0.86-nightly-2008-08-18\bin\nant.exe</executable>
                <buildFile>C:\projects\security\trunk\security.build</buildFile>
            </nant>
        </tasks>
        <externalLinks>
            <externalLink name="proj" url="projURL">
        </externalLinks>
    </project>

</cruisecontrol>

有人可以帮助我吗? 谢谢 卡特

附加信息:

  • 日志文件没有错误,也没有提到第二个项目
  • 网页界面只显示第一个项目

就好像第二个项目根本不存在。

问题是错字,我错过了日志文件中的错误。 WorkingDirectory 标记缺少最后一个“r”。

【问题讨论】:

    标签: svn cruisecontrol.net nant ccnet-config


    【解决方案1】:
    1. 您是否检查过您的 CCNet 构建日志是否有任何异常? (编辑答案:是的,没有。

    2. 登录 CCNet Web 服务器,第二个项目是否显示为有效项目? (编辑答案:不,它没有。

    3. 如果是这样,你能在它的基础上建立力量吗? (编辑答案:不,因为它没有显示出来。

    因此,由于这些答案,我的下一个建议是从命令行(而不是通过服务)启动您的 cc 服务器,以查看是否出现任何消​​息。

    这令人惊讶,因为通常当我的 CCNet 配置文件中有错误时,服务器会崩溃(非常困难),并且总是让我知道有问题。我真的很惊讶您可能会添加一个未显示或导致服务器崩溃的项目。

    您可能会尝试采用简单的方法,只需添加第三个空项目,看看您是否可以让 /that/ 出现在您的列表中。此外,您可以尝试插入一个您知道会使其崩溃的故意拼写错误,看看您是否可以让它显示出来。我担心您可能正在编辑错误的配置文件,或者 CCNet 实际上并没有看到您对其所做的更改(源代码控制同步问题?)。

    【讨论】:

      【解决方案2】:

      Interval triggers 的默认 buildConditionIfModificationExists,这意味着只有在您的 Source Control Block 中检测到修改时才会启动构建。

      来自 ccnet 的关于 buildCondition 属性的文档

      应该用于启动集成的条件。默认情况下,此值为 IfModificationExists,这意味着只有在检测到修改时才会触发集成。将此属性设置为 ForceBuild 以确保无论是否检测到新修改都应启动构建。使用源代码控制块来指定要观察哪些修改。

      因此,如果想要始终启动构建,无论源代码管理中是否发生修改,都需要指定 ForceBuild buildCondition 属性。例如:

      <triggers>
          <intervalTrigger name="continuous" buildCondition="ForceBuild" seconds="60"/>
      </triggers>
      

      【讨论】:

        【解决方案3】:

        你查到真相了吗?

        如果没有,请查看您的日志文件 (?:\Program Files\CruiseControl.NET\server\ccnet.log)。

        我建议在此阶段使用控制台应用程序 (ccnet.ext) 而不是服务 - 您可以更轻松地看到正在发生的事情。 另外,在启动控制台之前,通过打开 ccnet.exe.config 文件,找到 log4net 标记并设置 level value="DEBUG",确保将其设置为 DEBUG 日志记录> 在它的 root 中。

        启动控制台并让它运行几分钟,然后停止它并查看日志(如果仍有问题,请在此处发布)。

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多