将新项目添加到具有更高优先级的构建队列后,如何在TeamCity中重新排队快照依赖项?

时间:2012-09-19 10:18:15

标签: continuous-integration teamcity teamcity-7.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,因为对每次提交运行测试并不重要
  3. 我无法看到如何实现这些选项中的任何一个。快照依赖项当前设置为“如果有合适的版本,请不要运行新版本”,但是如果我更改了它,则无法在不经过整个链的情况下重新运行失败的测试。

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

1 个答案:

答案 0 :(得分:0)

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

Is it possible to prevent a build chain from being interrupted in TeamCity?

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