我是Cruise Control的新手,并且几天前在我的盘子上有一个不需要的突然项目。首先,我花了一些时间来了解这个巡航控制实际上是什么(我刚才知道Land Cruiser)。所以我不知道如何询问我的问题,所以请光临我或指导我。
我们有一堆项目将在Cruise Control中按顺序构建。我们为此配置了一切。现在,我的项目的一部分是在构建所有项目之后运行实用程序。由于项目将以固定顺序构建,我选择了最后一个项目(比如ProjectLast
)进行跟踪。以下是在项目构建之后运行该实用程序的代码示例
<forcebuild>
<project>MyUtility $(ccnet_branchlabel)</project>
<integrationStatus>Success</integrationStatus>
<enforcerName>ProjectLast $(ccnet_branchlabel)</enforcerName>
</forcebuild>
现在我想在上面的代码中运行MyUtility
仅在14.00到18.00之间的修复持续时间内运行。有没有办法做到这一点?请帮我理解这个。感谢。
修改
如果我的上述问题不清楚,这就是我想要的。 ProjectLast
版本成功完成,时间在14.00到18.00之间,然后MyUtility应该触发,否则不会触发。我希望现在很清楚。
答案 0 :(得分:1)
我认为这应该大致完成你所追求的(未经测试)。当ProjectLast
处于状态Success
时(每30秒检查一次),它应该触发构建,时间介于14:00
和18:00
之间(每60秒检查一次)
<multiTrigger operator="And">
<triggers>
<projectTrigger serverUri="tcp://server:21234/CruiseManager.rem" project="ProjectLast">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="30" buildCondition="ForceBuild" />
</projectTrigger>
<filterTrigger startTime="14:00" endTime="18:00">
<trigger type="intervalTrigger" seconds="60" />
<weekDays>
<weekDay>Sunday</weekDay>
</weekDays>
</filterTrigger>
</triggers>
</multiTrigger>
cruisecontrol configuration(特别是triggers)的文档应该对所有可能性有足够的解释。
所以目前,你有一些(我想象的)看起来像这样:
<project name="ProjectLast">
<tasks>
<!-- some build tasks etc etc -->
<forcebuild>
<project>MyUtility $(ccnet_branchlabel)</project>
<integrationStatus>Success</integrationStatus>
<enforcerName>ProjectLast $(ccnet_branchlabel)</enforcerName>
</forcebuild>
</tasks>
</project>
<project name="MyUtility">
<tasks>
<!-- whatever it is "MyUtility" does goes here -->
</tasks>
</project>
我建议将配置更改为:
<project name="ProjectLast">
<tasks>
<!-- some build tasks etc etc -->
</tasks>
</project>
<project name="MyUtility">
<multiTrigger operator="And">
<triggers>
<!-- the url here will obviously need to change to match your server -->
<projectTrigger serverUri="tcp://server:21234/CruiseManager.rem" project="ProjectLast">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="30" buildCondition="ForceBuild" />
</projectTrigger>
<filterTrigger startTime="14:00" endTime="18:00">
<trigger type="intervalTrigger" seconds="30" />
<weekDays>
<weekDay>Sunday</weekDay>
</weekDays>
</filterTrigger>
</triggers>
</multiTrigger>
<tasks>
<!-- whatever it is "MyUtility" does goes here -->
</tasks>
</project>
请注意,我们已将项目MyUtility
的决定移至MyUtility
项目,而不是ProjectLast