为什么我的CruiseControl.net项目没有触发工作?

时间:2010-08-18 03:38:36

标签: cruisecontrol.net

我在CruiseControl.net上有一个项目,我正在尝试为大多数日子的特定时间创建一个计划。

问题在于它不起作用。在我删除项目触发器之前,计划的时间在CCnet仪表板中不会更新。然后它工作..但它不是建立一个项目因此无用。

在我的 CCnet.config

  <project>
    <name>MyProject-nightly</name>

      <triggers>  
        <multiTrigger operator="And"> 
            <triggers> 
                <projectTrigger project="MyProject" /> 
                <scheduleTrigger time="11:23" buildCondition="ForceBuild">
                    <weekDays>
                        <weekDay>Monday</weekDay>
                        <weekDay>Tuesday</weekDay>
                        <weekDay>Wednesday</weekDay>
                        <weekDay>Thursday</weekDay>
                        <weekDay>Friday</weekDay>
                        <weekDay>Saturday</weekDay>
                    </weekDays>
                </scheduleTrigger>
            </triggers> 
        </multiTrigger>
    </triggers>

  </project>

当我删除此行时:

<projectTrigger project="MyProject" />

仪表板中的next build time更新正确,并且它确实在指定的时间执行但显然没有任何反应。

这有什么问题?我使用 CruiseControl.net版本:1.5.7256.1

2 个答案:

答案 0 :(得分:3)

你不必创建一个不同的项目。我认为你也误解了ProjectTrigger,如果另一个项目已经完成构建,ProjectTrigger将启动构建(在你的情况下,它会在MyProject完成构建时开始构建MyProject - 我不认为你想要的是什么。

你想要的行为究竟是什么?

如果您希望您的项目从源代码控制修改构建,并且您需要像这样进行配置:

<triggers> 
    <intervalTrigger name="Polling From source control" seconds="60" BuildCondition="IfModificationExists"/>
    <scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Nighly Build">
        <weekDay>Monday</weekDay>
        <weekDay>Tuesday</weekDay>
        <weekDay>Wednesday</weekDay>
        <weekDay>Thursday</weekDay>
        <weekDay>Friday</weekDay>
        <weekDay>Saturday</weekDay>
    </scheduleTrigger>
</triggers> 

严格等同于带有OR运算符的多重触发器。

答案 1 :(得分:2)

我确实找到了一种不同的方法来实现这一点,只是不做一个单独的项目并将其放在一个项目中:

<triggers> 
    <multiTrigger operator="And"> 
        <triggers>
        <intervalTrigger name="Continuous Integration" seconds="5" buildCondition="IfModificationExists" initialSeconds="30" />
            <scheduleTrigger time="20:00" buildCondition="ForceBuild">
                <weekDays>
                    <weekDay>Saturday</weekDay>
                </weekDays>
            </scheduleTrigger>
        </triggers> 
    </multiTrigger>
</triggers>

这将在周六晚上8:00提供代码的预定构建,并在源代码更改时构建。

希望这可以帮助其他人尝试实现同样的目标。