1

所以我有几个项目(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。

我可以在“构建触发器”部分实现 VCS 触发构建。

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

我不知道如何在正确的依赖链中以正确的顺序实现触发构建。如果我将项目 A 设置为项目 B 的快照依赖项,当需要构建 B 时,它会重新构建 A,然后重新构建 B。同样,如果 A 发生更改,则仅重新构建 A。我希望 A 中的更改导致我所有项目的重建。

这可能吗?我在 TeamCity 7.1.3 上。

4

2 回答 2

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 上使用此设置

于 2013-08-27T21:52:50.203 回答
1

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

于 2013-06-24T18:59:51.477 回答