Nuget TeamCity完成构建触发器层次结构

Nuget TeamCity完成构建触发器层次结构,nuget,teamcity,Nuget,Teamcity,我目前正在尝试实现完成构建触发器和快照依赖项,以便在依赖项发生更改时启动构建。但是,我的构建配置有点复杂。例如,我可能有一个如下的构建配置 这张照片 我希望满足以下3个案例: 构建D启动构建B和C,然后让B或C启动构建A。确保B和C在触发A之前完成 如果构建D未运行,而B已运行,则只启动构建A 如果构建D未运行,而C已运行,则只启动构建A 换句话说,我想要这些构建序列: D->(B和C)->A B->A C->A 有什么方法可以做到这一点吗?只要使用快照依赖项,就可以实现几乎所有的功能,只有一

我目前正在尝试实现完成构建触发器和快照依赖项,以便在依赖项发生更改时启动构建。但是,我的构建配置有点复杂。例如,我可能有一个如下的构建配置

这张照片

我希望满足以下3个案例:

  • 构建D启动构建B和C,然后让B或C启动构建A。确保B和C在触发A之前完成
  • 如果构建D未运行,而B已运行,则只启动构建A
  • 如果构建D未运行,而C已运行,则只启动构建A
  • 换句话说,我想要这些构建序列:

  • D->(B和C)->A
  • B->A
  • C->A

  • 有什么方法可以做到这一点吗?

    只要使用快照依赖项,就可以实现几乎所有的功能,只有一个小的例外—通过B或C触发a。 快照依赖项中有一条规则-此配置的生成将在生成所有依赖项后运行。这意味着我们可以使用操作(通过B和C触发A),但不能使用(通过BC触发A)

    因此,要在D之后触发B,您需要为B在D上添加快照依赖项。对于C也是如此。 和其他版本类似

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

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

    您是在询问如何在构建期间更改nuget依赖项版本,还是如何在teamcity中设置触发器?(如果两者都有,您可能想考虑拆分…)嗨,我想知道如何以层次顺序设置生成触发器。我重新措辞了我的问题,以便更清楚。谢谢你的帮助!