我正在使用ccnet 1.6设置每晚构建以顺序和独占地运行项目,但是当触发构建时,我设置了队列,项目不按队列优先级定义的预期顺序启动。下面的配置首先随机地启动队列1,2,3或4,然后按照定义的顺序顺序完成剩余的项目(即2,1,3,4或3,1,2,4等)。我尝试过xlmns 1.6和1.5,结果相同。我不明白为什么这不起作用,我错过了什么? 感谢
<cb:define name="Common">
<webURL>http://hostname/ccnet/server/local/project\$(CCProjectName)\ViewLatestBuildReport.aspx</webURL>
<workingDirectory>D:\source\$(ProjectName)</workingDirectory>
<sourcecontrol type="svn"/>
<modificationDelaySeconds>60</modificationDelaySeconds>
<triggers>
<scheduleTrigger time="11:05" buildCondition="ForceBuild "/>
</triggers>
<state type="state" directory="C:\Program Files\CruiseControl.NET\server" />
</cb:define>
<cb:define name="BuildProject">
<project name="$(CCProjectName)" queue="SequentialQueue" queuePriority="$(QueuePriority)">
<cb:Common />
<tasks>
<exec>
<executable>$(ANT_HOME)\bin\ant.bat</executable>
<buildArgs>-logger org.apache.tools.ant.XmlLogger -logfile build_log.xml -f build\$(ProjectName).xml</buildArgs>
</exec>
</tasks>
<publishers>
<merge>
<files>
<file>D:\source\$(ProjectName)\build\*.xml</file>
</files>
</merge>
<xmllogger />
</publishers>
</project>
</cb:define>
<cb:BuildProject CCProjectName="API" ProjectName="api" QueuePriority="1" />
<cb:BuildProject CCProjectName="Ack" ProjectName="acknowledgement" QueuePriority="2" />
<cb:BuildProject CCProjectName="Error" ProjectName="error" QueuePriority="3" />
<cb:BuildProject CCProjectName="Monitoring" ProjectName="monitoring" QueuePriority="4" />
答案 0 :(得分:0)
我猜这是CruiseControl.Net中的一个错误,您的场景(由同一个计划触发器触发的一个队列中的可变优先级项目)并不常见。您应该在cruisecontrolnet.org上提交错误。
这种设置的一种更常见的解决方案是让项目使用<projectTrigger/>
相互触发,这也会导致顺序构建。您可能希望更改triggerStatus
参数,以便失败的构建不会阻止链。