例如,我有三个任务:task1,task2,task3。如何编写运行task3的CruiseControl.NET配置文件,但只有在task2以成功结束后才能编写?
答案 0 :(得分:5)
CruiseControl.NET v1.5使用新的顺序和并行任务增强了任务的执行......
http://confluence.public.thoughtworks.org/display/CCNET/Sequential+Task
<sequential continueOnFailure="false">
<description>Example of how to run multiple tasks in sequence.</description>
<tasks>
<!-- Tasks defined here -->
</tasks>
</sequential>
答案 1 :(得分:4)
根据您要完成的任务,可以通过两种方式轻松完成:
A)CruiseControl.NET支持所谓的projectTriggers:
为了使用这种方法,每个任务都需要隔离到自己的项目配置中。基本上, task3项目监视 task2项目的构建状态。 task2项目成功完成后, task3项目将触发构建。要设置projectTrigger,请在ccnet.config中编辑 task3项目定义并创建一个触发器块,如下所示:
<triggers>
<multiTrigger>
<triggers>
<intervalTrigger seconds="30" />
<projectTrigger project="task2">
<triggerStatus>Success</triggerStatus>
</projectTrigger>
</triggers>
</multiTrigger>
</triggers>
B)使用Nant目标设置任务顺序:
正如Wim所指出的,您可能需要考虑将任务分解为Nant目标,而不是尝试在ccnet.config中执行此操作。就个人而言,我发现这种方法更舒服,因为我知道Nant擅长做这类事情。
答案 2 :(得分:2)
我建议您在NAnt或MSBuild任务中执行此操作,并将其移出CruiseControl.NET配置。
你的任务是做什么的?你有什么理由不能在NAnt或MSBuild脚本中移动它们吗?
答案 3 :(得分:0)
我会推荐一个脚本文件(bat,PowerShell),您可以在其中运行任务并检查是否成功。