我有许多链接在一起的构建配置。
A
B
C D E
每个构建都对链中的先前配置具有快照依赖关系,这意味着构建 B 依赖于 A,而构建 C、D 和 E 依赖于 B。
每个配置都有一个触发器,用于在链中的上一个构建成功完成时设置。此设置的问题是运行个人构建以测试远程更改时。如果 B 在针对 A 将远程更改添加到队列中时正在运行,则个人构建将首先运行 A(个人构建),然后 C、D 和 E 将添加到队列中。这是一个问题的原因是 C、D 和 E 是针对在步骤 A 和 B 中部署的代码运行的测试。这意味着在运行测试之前,通过个人更改有效地重新部署了代码。
有两种可接受的方法来解决这个问题
- 在将 A 作为个人构建运行后,将 A 重新排队以在 C、D 和 E 之前运行而不进行这些更改
- 在将 A 作为个人构建运行后,从构建队列中删除 C、D 和 E,因为不必针对每个提交运行测试
我无法看到如何实现这些选项中的任何一个。快照依赖项当前设置为“如果有合适的则不运行新构建”,但如果我更改此设置,则无法重新运行失败的测试而无需再次遍历整个链。
这是配置 TeamCity 的一种糟糕方法吗?如果是,那么构建构建链的更好方法是什么?