【问题标题】:TeamCity Finish Build Triggers HierarchyTeamCity 完成构建触发器层次结构
【发布时间】:2017-05-31 20:58:23
【问题描述】:

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

的构建配置

这张照片。

我希望满足这 3 个案例:

  1. 构建 D 启动构建 B 和 C,然后让 B 或 C 启动构建 A。确保 B 和 C 在触发 A 之前完成。
  2. 如果构建 D 未运行而 B 运行,则仅启动构建 A。
  3. 如果构建 D 未运行而 C 运行,则也只启动构建 A。

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

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

有没有办法做到这一点?

【问题讨论】:

  • 您是在询问如何在构建期间更改 nuget 依赖项版本或如何在 teamcity 中设置触发器? (如果两者都有,您可能要考虑拆分..)
  • 您好,我想知道如何按层次顺序设置构建触发器。我改写了我的问题,以便更清楚。感谢您的帮助!

标签: nuget teamcity


【解决方案1】:

您想要实现的几乎所有事情都可以仅使用快照依赖项,但有一个小例外 - 由 B 或 C 触发 A。 快照依赖项中有一条规则 - 此配置的构建将在构建所有依赖项后运行。这意味着我们可以使用 AND 操作(B 和 C 触发 A)但不能使用 OR(B C触发 A)。 p>

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2023-03-04
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多