我有三个有问题的项目,我们称之为A,B和C.其中'A'只是为B准备一个cetain构建场景,这是主要版本。 C清理场景并基本上将B重置为其原始状态。 我已将这些项目设置在同一队列中,并且在项目B失败时,大部分工作都会对此过程进行测试。这是情况,将在下面解释。
<project name="A" queue="main">
<publishers>
<email status of build/>
<forcebuild>
<project>B</project>
</forcebuild>
<forcebuild>
<project>C</project>
</forcebuild>
</publishers>
<task>Prepares special scenario</task>
</project>
<project name="B" queue="main">
<publishers>
</publishers>
<task>Builds main project</task>
</project>
<project name="C" queue="main">
<publishers>
</publishers>
<task>Resets special scenario</task>
</project>
方案:
如果发生No.2和No.3的组合,有没有人能够看到为什么项目C不能构建?欢迎任何帮助或指导。
感谢。
答案 0 :(得分:1)
项目A
可以负责清理当前状态并准备新构建。
比如说B
的构建过程中出现了电源故障。在此配置中,您需要手动强制C
才能运行构建过程吗?
如果A
运行与C
相同的任务,那么作为自己的任务,这样就可以解决这个问题,我相信也是如此。
答案 1 :(得分:1)
完成后,应始终清理测试环境。我建议将project trigger用于项目C,并将其设置为类似于以下内容。如果A成功,这将允许C始终运行(可以通过修改C中的项目触发器来更改)。
<project name="A" queue="main">
<publishers>
<email status of build/>
<forcebuild>
<project>B</project>
</forcebuild>
</publishers>
<tasks>Prepares special scenario</tasks>
</project>
<project name="B" queue="main">
...
</project>
<project name="C" queue="main">
<triggers>
<projectTrigger project="A" />
</triggers>
<publishers />
<tasks>Resets special scenario</tasks>
</project>