如何处理两个工件的TeamCity依赖关系并构建触发器

时间:2013-06-20 15:03:00

标签: dependencies teamcity snapshot artifacts

所以我有几个项目(A,B,C,D),依赖项看起来像这样:

  B
 / \
A   D
 \ /
  C

也就是说,B和C依赖于来自A的伪像,D取决于来自B和C的伪像。

我想做几件事:

  1. 以前成功构建的工件在项目中使用。例如,当触发项目C的构建时,它使用之前已经验证为好的项目A的工件(也称为测试通过)。
  2. 项目中触发的构建还会触发依赖于它们的项目中的构建。例如,如果在B项目中进行了更改,则构建B项目,然后使用刚构建的B项目中的工件构建D项目。项目A中的更改按此顺序重建所有内容A,B和C(并发),然后是D.
  3. 我可以在“构建触发器”部分中实现VCS触发的构建。

    我可以通过添加“上次成功构建”中的工件依赖项并移除我的工件来在“依赖项”部分中实现工件依赖项。

    我不知道如何在正确的依赖关系链中以正确的顺序实现触发的构建。如果我将项目A作为项目B的快照依赖项,则需要构建B时,它会重建A然后重建B.同样,如果A中发生更改,则只重建A。我希望在A中进行更改,以便为我的所有项目进行重建。

    这可能吗?我在TeamCity 7.1.3上。

2 个答案:

答案 0 :(得分:3)

您也可以使用VCS触发器。设置B和C将A作为快照依赖关系,D具有对B和C的快照依赖关系。然后在所有4个VCS构建触发器上设置,确保选中“触发快照依赖关系中的更改”选项。

这样 -

更改A:A重建,然后触发B和C的构建。这些构建然后也触发D的构建,所有都按正确的顺序。

B或C中的更改:如果A未更改,则使用现有构建,重建自身并触发D的构建:

D中的变化:如果A,B和C未更改,它将使用现有构建并构建新的D。

我在7.1.2版本上使用此设置

答案 1 :(得分:1)

事实证明,通过使用工件依赖项和“Build Finished”构建触发器,我可以得到我想要的东西。