强制构建对此方案的关注 - CruiseControl.NET



我有三个项目有问题,我们称它们为 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>

场景:

  1. 当项目"A"被强制时,它会生成项目 B,如果 B 成功,它会生成 C。这工作正常。
  2. 当项目">
  3. A"被强制时,它会生成项目"B",如果 B 失败,它会构建 C。这在我的情况下也很好。
  4. 现在,在项目 B 中修复了第 2 个场景和错误之后;如果项目 A 再次被强制并且项目 B 显示巡航状态为"已修复",则它不会构建 C。这不行吗?

谁能看出为什么如果2号和3号的组合发生,项目C不会建立?欢迎任何帮助或指导。

谢谢。

完成测试环境后,应始终清理测试环境。我建议对项目 C 使用项目触发器,并将其设置为类似于以下内容的内容。这将允许 C 在 A 成功时始终运行(可以通过修改 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>

项目A可以负责清理当前状态并为新版本做准备。

例如,假设在B的构建过程中发生了电源故障。在此配置中,您需要手动强制C才能运行构建过程?

如果A运行与C相同的任务,那么作为自己的任务,我相信这将消除这个问题和你的问题。

最新更新