0

我有许多链接在一起的构建配置。

A
B
C D E

每个构建都对链中的先前配置具有快照依赖关系,这意味着构建 B 依赖于 A,而构建 C、D 和 E 依赖于 B。

每个配置都有一个触发器,用于在链中的上一个构建成功完成时设置。此设置的问题是运行个人构建以测试远程更改时。如果 B 在针对 A 将远程更改添加到队列中时正在运行,则个人构建将首先运行 A(个人构建),然后 C、D 和 E 将添加到队列中。这是一个问题的原因是 C、D 和 E 是针对在步骤 A 和 B 中部署的代码运行的测试。这意味着在运行测试之前,通过个人更改有效地重新部署了代码。

有两种可接受的方法来解决这个问题

  1. 在将 A 作为个人构建运行后,将 A 重新排队以在 C、D 和 E 之前运行而不进行这些更改
  2. 在将 A 作为个人构建运行后,从构建队列中删除 C、D 和 E,因为不必针对每个提交运行测试

我无法看到如何实现这些选项中的任何一个。快照依赖项当前设置为“如果有合适的则不运行新构建”,但如果我更改此设置,则无法重新运行失败的测试而无需再次遍历整个链。

这是配置 TeamCity 的一种糟糕方法吗?如果是,那么构建构建链的更好方法是什么?

4

1 回答 1

0

我通过在这个问题中实施公认的答案解决了这个问题:

是否可以防止构建链在 TeamCity 中被中断?

该解决方案实施了上面的选项 1。通过使用包含当前部署值的文本文件,如果依赖项已过期,则可以通过 HTTP 取消/重新触发构建。

于 2013-02-11T15:02:04.343 回答