【发布时间】:2014-07-30 09:24:51
【问题描述】:
我们有 1 个构建控制器和 2 个构建代理。一个构建代理 (tfsbuild01) 在构建控制器机器 (tfsbuild01) 上。另一个在单独的机器上 (tfsbuild02)。
我们有 2 个分支机构:
- 主要
- 8.0
和 3 个构建定义
- 主要(门控签入)
- 8.0(门控签入)
- 主要编码 UI 测试(计划在每天中午 12 点进行)
如果有人同时将 8.0 构建和主构建排队,则构建将正确分布在两个构建代理之间,并且它们同时构建。
如果 Coded UI 测试正在运行(这需要一个小时)并且有人尝试签入 Main(这是 Gated),则 Main 构建会排在队列中,直到 Coded UI 测试完成。如何让同一分支中的并发构建工作?
所有构建定义的标签配置如下所示:
【问题讨论】:
-
您在代理上使用标签吗?听起来您的“主要”和“测试”仅限于在同一个标签上运行,并且只有一个代理正在使用该标签。
-
你的构建代理上有标签吗?
-
见截图。不是我知道的。此外,我们已经看到尝试同时处理两个门控签入到 main 的相同行为......这就像 TFS 一次只会构建一个分支。
-
屏幕截图显示了一个的构建定义配置不是代理的配置。我目前的想法是您有一个标记的代理,一个未标记的代理,并且您的 8.0 分支构建设置为在标记的代理上构建,而其他两个构建设置为在未标记的代理上构建。问题在于构建分发 - 它在同一个代理上运行两个构建,而不是将最新构建分发给空闲代理。
-
一个后续问题:如果您在测试运行时对 8.0 分支的构建进行排队,是否会出现同样的问题?