【问题标题】:TFS Parallel BuildsTFS 并行构建
【发布时间】: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 分支的构建进行排队,是否会出现同样的问题?

标签: tfs tfsbuild


【解决方案1】:

这真是一门课程问题。您的资产构建和实例测试混合在一起。我建议您将 CodedUI 测试推到一个环境中,只运行可以从代码执行的测试,理想情况下只运行单元测试,构建框上没有实例。

要执行您的 codedUI 测试,您应该在发布管理中创建一个发布管道,并将您的发布环境设置为实验室环境。通过这种方式,您可以快速构建,然后从该管道中完成更长的验证。

这将释放您的构建代理,并有望使您的环境更加流畅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2013-06-25
    • 2010-11-09
    • 1970-01-01
    相关资源
    最近更新 更多