ForceBuild上的CruiseControl.NET无限循环

时间:2016-05-09 15:32:02

标签: continuous-integration infinite-loop cruisecontrol.net build-server ccnet-config

我一直在尝试在CCNET上设置一个项目,该项目只有在某人强制建立它时才会建立(即不会检查修改)。为此,我在ccnet.config文件中写出了以下定义。

<project name="DummyPackagedProject-StagingRedeploy" description="Redeploys DummyPackagedProject after Staging Bump" queue="stageRedeploy">
  <state type="state" directory="$(BuildState)" />
  <artifactDirectory>$(BuildArt)\DummyPackagedProject-StagingRedeploy</artifactDirectory>
  <workingDirectory>$(BuildArt)\DummyPackagedProject</workingDirectory>
  <!-- No triggers; must be forced. -->

  <tasks>
    <devenv>
      <description>Build DummyPackagedProject</description>
      <executable>$(devenvexe)</executable>
      <solutionfile>$(BuildDir)\DummyPackagedProject\DummyPackagedProject.sln</solutionfile>
      <buildtype>Rebuild</buildtype>
      <configuration>Stage</configuration>
      <buildTimeoutSeconds>900</buildTimeoutSeconds>
    </devenv>
  </tasks>

  <publishers>
    <xmllogger />
    <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
    <modificationHistory onlyLogWhenChangesFound="false" />
  </publishers>
</project>

(BuildArt,BuildDir,BuildState是指向特定目录的全局变量,devenvexe是指向VS2013的全局变量)

我查看了CCNET本身的日志文件(而不是为项目运行生成的日志文件),看起来一旦我触发Forcebuild,它就会执行以下操作:

  1. 添加到位置0的(空)队列。
  2. 获取对我们的开发队列的锁定。
  3. 从队列中获取构建,找不到修改。
  4. 触发构建本身,开始构建。
  5. Something将另一个Forcebuild请求放在位置1的队列中。
  6. 重复步骤5,但它发现请求已经在队列中,并且它被取消。
  7. 成功完成建设。
  8. 释放我们的开发队列锁。
  9. CCNET选择项目在队列中,并重新启动该过程(直到我中止构建)。
  10. 所以我想知道是否有办法找出触发额外ForceBuild的内容。我是唯一一个使用该项目的人,并没有设置其他项目来触发ForceBuild。

    非常感谢任何建议。

    编辑:以下是项目配置的已处理输出(Simon Laing请求):

    <project>
      <askForForceBuildReason>None</askForForceBuildReason>
      <category />
      <artifactDirectory><BUILDART>\DummyPackagedProject-StagingRedeploy</artifactDirectory>
      <workingDirectory><BUILDART>\DummyPackagedProject</workingDirectory>
      <description>Redeploys DummyPackagedProject after Staging Bump</description>
      <externalLinks />
      <initialState>Started</initialState>
      <labeller type="defaultlabeller">
        <incrementOnFailure>False</incrementOnFailure>
        <initialBuildLabel>1</initialBuildLabel>
        <labelFormat>0</labelFormat>
        <postfix />
        <prefix />
        <labelPrefixFile />
        <labelPrefixFileSearchPattern />
      </labeller>
      <maxSourceControlRetries>5</maxSourceControlRetries>
      <modificationDelaySeconds>0</modificationDelaySeconds>
      <name>DummyPackagedProject-StagingRedeploy</name>
      <parameters />
      <prebuild />
      <publishers>
        <xmllogger>
          <dynamicValues />
          <environment />
        </xmllogger>
        <artifactcleanup>
          <cleanUpMethod>KeepLastXBuilds</cleanUpMethod>
          <cleanUpValue>50</cleanUpValue>
          <dynamicValues />
          <environment />
        </artifactcleanup>
        <modificationHistory>
          <dynamicValues />
          <environment />
          <onlyLogWhenChangesFound>False</onlyLogWhenChangesFound>
        </modificationHistory>
      </publishers>
      <queue>stageRedeploy</queue>
      <queuePriority>0</queuePriority>
      <security type="inheritedProjectSecurity" />
      <showForceBuildButton>True</showForceBuildButton>
      <showStartStopButton>True</showStartStopButton>
      <sourcecontrol type="nullSourceControl">
        <alwaysModified>False</alwaysModified>
        <failGetModifications>False</failGetModifications>
        <failGetSource>False</failGetSource>
        <failLabelSourceControl>False</failLabelSourceControl>
      </sourcecontrol>
      <sourceControlErrorHandling>ReportEveryFailure</sourceControlErrorHandling>
      <startupMode>UseLastState</startupMode>
      <state type="state">
        <directory><BUILDSTATE></directory>
      </state>
      <stopProjectOnReachingMaxSourceControlRetries>False</stopProjectOnReachingMaxSourceControlRetries>
      <tasks>
        <devenv>
          <buildTimeoutSeconds>900</buildTimeoutSeconds>
          <buildtype>Rebuild</buildtype>
          <configuration>Stage</configuration>
          <description>Build DummyPackagedProject</description>
          <dynamicValues />
          <environment />
          <executable>C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com</executable>
          <priority>Normal</priority>
          <project />
          <solutionfile><BUILDSRC>\DummyPackagedProject\DummyPackagedProject.sln</solutionfile>
        </devenv>
      </tasks>
      <triggers />
      <webURL>http://BUILDSERVER/ccnet</webURL>
      <writeSummaryFile>False</writeSummaryFile>
    </project>
    

0 个答案:

没有答案