查看多个帖子,例如TeamCity show changes from snapshot dependencies,TeamCity show changes from snapshot dependencies,https://stackoverflow.com/questions/9366791/trigger-on-changes-in-snapshot-dependencies-does-not-seem-to-work-properly?rq=1,https://stackoverflow.com/questions/9982496/snapshot-dependency-dont-run-pending-changes-on-dependencies?rq=1
并且它们似乎都没有解决我认为是一个非常简单的要求,我无法理解如何解决。
我想在Teamcity中设置以下构建链
DS取决于Core DS取决于C5 AS取决于DS
PluginA依赖于DS PluginA依赖于AS
我已经在DS for Core上设置了快照依赖关系,C5认为Core / C5中的任何更改都应该触发DS重建?
同样,PluginA应该在对Core更改时重建,因为它的两个依赖项应该重新触发?
但是这没有按预期工作。构建显示为具有挂起的更改,但需要手动重建才能实际工作。
我是否还需要为每个快照依赖项配置完成构建触发器?
答案 0 :(得分:2)
如果我理解您的描述,下图是您设置的流程。
如果这是正确的,那么你有两个选择,但在此之前,只需快速回顾一下Build Chains。构建链以“从右向左”的顺序触发,但实际构建以“从左到右”的顺序运行。这意味着如果触发“核心”(例如,调度或VCS触发),则还将触发“核心”具有快照依赖性的所有构建。但由于它是链中最左边的节点,因此没有其他任何东西被触发。另一方面,如果你在“插件A”上有一个触发器,那么快照链中的所有构建都将从左到右触发,因此“Core”和“C5”将首先并行触发,然后是“DS”和“AS”顺序然后最后“插件A”。所以,您的选择如下:
因此,您必须考虑所需的确切行为,以及您希望该行为发生的上下文,然后相应地设置您的链(和触发器)。
答案 1 :(得分:1)
是。要触发转发(Core - > DS),您需要完成构建触发器。快照依赖性向后工作(触发DS,触发其代表,即Core& C5)。
并行设置快照依赖项和完成构建触发器是很常见的。阅读更多here。