2017-05-31 64 views
0

我目前正试图实现完成构建触发器和快照依赖关系,以在任何时候依赖项发生更改时启动构建。但是,我的构建配置有点复杂。例如,我可能有一个构建配置,看起来像TeamCity完成构建触发器Hiearchy

此图片。

This Picture

我想有这3例符合:

  1. 构建d揭开序幕构建B和C,然后要么B或C揭开序幕构建A.确保B和C在A被触发前完成。
  2. 如果构建D未运行且B运行,则只启动构建A.
  3. 如果构建D未运行且C运行,那么也只能启动构建A。

换句话说,我想这些序列的构建:

  1. d - >(B和C) - >甲
  2. B-> A
  3. C->甲

有没有办法做到这一点?

+0

您是否在构建期间如何更改nuget依赖项版本或者如何在teamcity中设置触发器? (如果两者,你可能想考虑拆分..) –

+0

嗨,我想知道如何设置构建触发器的分层次序。我重新提出了我的问题,以便更清楚。谢谢你的帮助! –

回答

0

几乎所有你想要实现的可能只是使用快照依赖关系的一个小例外 - 触发A B或C. 快照依赖关系中有一条规则 - 该配置的构建将在所有依赖关系之后运行建成。这意味着我们可以使用操作(由B和C触发A),但不使用(触发A由B C)。

所以要在D之后触发B,您需要在D上为B添加快照依赖关系。对于C也是如此。 对于其他构建也是如此。

可以使用Kotlin DSL自定义构建触发,它可以帮助您实施操作。但是,这不是TeamCity的开箱即用功能。

另一个解决方法是有2个版本的A版本。其中一个将由B构建(它将对B具有快照依赖性)以及另一个由C构建(其将对C具有快照依赖性)来触发。 要减少重复,您可以将所有A逻辑提取到模板中。所以2个副本将具有不同的依赖关系,但其他所有内容都将在模板中定义。

相关问题