【发布时间】:2014-10-22 00:46:23
【问题描述】:
在一家公司,我们正在运行 TFS 2013 Update 3。我们正在使用具有多个团队项目集合、构建控制器和构建代理的共享构建基础架构。
现在,一个项目要求使用专用的构建机器来提高性能和特定的配置选项。
TFS 中有没有办法将构建控制器链接到他们的团队项目并禁止其他团队项目使用这个特定的构建控制器?
【问题讨论】:
在一家公司,我们正在运行 TFS 2013 Update 3。我们正在使用具有多个团队项目集合、构建控制器和构建代理的共享构建基础架构。
现在,一个项目要求使用专用的构建机器来提高性能和特定的配置选项。
TFS 中有没有办法将构建控制器链接到他们的团队项目并禁止其他团队项目使用这个特定的构建控制器?
【问题讨论】:
正如 JustTFS 建议的标签是一种方法。我发现的问题是,默认情况下构建定义设置为在任何代理上运行,而不管标签如何。因此,虽然您可以将代理标记为 ProjectX,并将所有 ProjectX 的构建设置为仅使用具有该标签的代理 - ProjectA 的构建可能仅使用默认值,如果可用,也将使用 ProjectX 代理。
我现在更喜欢做的(我以前使用标签方法),是为每个团队项目都有一个构建控制器。这样,ProjectX 构建定义被设置为使用 ProjectX 控制器。而且由于 ProjectA 构建定义设置为使用 ProjectA 控制器(或某些通用控制器),因此 ProjectA 构建将永远不会在 ProjectX 构建服务器上运行。
【讨论】:
构建控制器与团队项目集合相关联,您不能真正专门指定特定项目。
您可以做的是使用标签,并使用标签 (ProjectA) 标记特定的构建服务器 (Agent)。然后,您可以在构建定义中指定该标签,以便该构建将仅在具有该标签的构建服务器上运行。
该示例显示了我的旧代码 VS2008 Build Controller Tag。您还可以通过在名称过滤器中指定其名称来过滤代理
【讨论】: