TFS 2017 - 构建代理优先级和顺序

TFS 2017 - Build agents priority and order

我有一个包含 10 个代理的池。我注意到通常只有一部分被使用,而其他的几乎没有被使用过。

我想知道是否有办法告诉 TFS 使用所有这些?例如,像 TFS 这样的东西会根据顺序抓取它们。第一次使用数字 1,然后是 2、3。使用代理后,它将代理放在队列的末尾。因此,在再次使用数字 1 之前,TFS 将首先使用所有数字。

如果能够充分利用我们现有的所有代理,那么最好有这样的逻辑。

正如大牛所说,不需要轮换。如果其中一些不需要,您可以删除它们。

但是,如果您想每次都使用特定代理,可以在构建定义中设置 Demands

在构建定义中,在 General 下,添加 Demand Agent.Name 并将其设置为在value栏下构建agent,或者添加自定义需求(比如使用USER CAPABILITIES)来标识具体的agent。这将确保构建仅由该代理提供服务。

因此,您可以创建不同的构建定义来使用每个代理。

详情请参考这篇文章:Build vNext, distributing load to different agents.

但是,我们暂时无法实现。该功能有一个 user voice request here。您可以去投票,以便将来实现它。

我也想知道同样的事情。清理过程似乎不时留下人工制品。随着我们 运行 的构建数量,服务器最终会在 space 上变低(即使我们编写了自己的清理实用程序)。

看来TFS的疯狂是有办法的:VSTS Build Agent Selection Demystified

After discussing this with some folks at Microsoft, it turns out that the selection routine works something like this – when a new build is queued:

  1. Select all build agents that match the specified demands
  2. Sort the results by the clustered index on agent name

Translation: The build agents are selected in the same order in which they were registered with VSTS. I suppose that’s a simple approach, but not the one that I was expecting.