无法将队列添加到现有 TFS 2015 Build 代理池

Cannot add queue to existing TFS 2015 Build agent pool

升级到 TFS 2015 后尝试设置生成服务器。

我设想的方式是: 单一代理池,将有 3 个队列: 1.每晚构建 2. CI 构建 3. Gated/validation 构建。

他们每个人都会有一些代理,目标是有一些控制,以确保夜间构建不会消耗所有代理,因此门控队列将始终有一些可用的代理。

我现在遇到的问题是,当我尝试添加新队列时,选项 "Use existing pool" 被禁用,我只能通过创建新代理池来添加队列。

它没有按照您希望的方式工作。

一个代理可以是一个且恰好一个代理池的成员。代理池存在于 服务器 级别,而不是团队项目集合级别。

一个代理队列绑定到一个且恰好一个代理池。但是,跨团队项目集合边界的不同代理队列可以引用代理池。

因此,这样做的结果是您可以跨多个团队项目集合共享您的代理池。

在 VSTS 中,区别存在但不太相关 -- 你不能有多个团队项目集合,因此代理池和代理队列或多或少是等效的,你只需要管理它们。

您可以使用自定义功能(在您的代理上)和需求(在您的构建定义上)来确保特定代理始终保留用于特定构建场景。

当然,基于任务的构建尚不支持 TFVC 的门控签入,因此您对门控代理始终可用的担忧没有实际意义,至少目前如此。

既然所有这些都已解决,您的问题的答案很简单:

Q: I'm trying to create a queue that uses an existing pool, but the controls are grayed out. Why?

A: On the Create Queue dialog box, you can't use an existing pool if it is already referenced by another queue. Each pool can be referenced by only one queue. If you delete the existing queue, you can then use the pool.

参考:https://msdn.microsoft.com/en-us/Library/vs/alm/Build/agents/admin