我们有一个非常大的遗留系统,它使用复杂的批处理文件构建。我们的CruiseControl.NET服务器只调用批处理文件并检查返回代码,这样可以正常工作并生成成功。
有时候,批量文件在成功构建后似乎没有正确返回,而CruiseControl.NET只是命中超时并报告构建失败。
有没有什么方法可以让CruiseControl.NET检查批处理文件中输出的字符串,表明构建成功,并正确报告构建的状态?
(当我得到一两天的空闲时间我想用NAnt或其他东西重写构建脚本,但它没有被赋予高优先级,因为它太复杂了,而且它目前正在工作)
编辑:这是ccnet.config中的条目
<project name="MyProject" queue="Q1" queuePriority="1">
<workingDirectory>D:\MyProject</workingDirectory>
<triggers />
<tasks>
<exec>
<executable>buildexe.bat</executable>
<baseDirectory>D:\MyProject</baseDirectory>
<buildArgs>V12.8 MyProject</buildArgs>
<buildTimeoutSeconds>6000</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
</exec>
</tasks>
<publishers>
<xmllogger logDir="D:\MyProject\logs\V12.8" />
</publishers>
</project>
答案 0 :(得分:1)
您是否尝试过明确设置successexitscodes?
请参阅http://confluence.public.thoughtworks.org/display/CCNET/Executable+Task