Reputation: 39898
At a company we a running TFS 2013 Update 3. We are using a shared build infrastructure with multiple Team Project Collections, Build Controllers and Build Agents.
Now a project has requested a dedicated build machine for performance and specific configuration options.
Is there a way in TFS to link the Build Controller to their team project and disallow other team projects to use this specific Build Controller?
Upvotes: 0
Views: 385
Reputation: 22235
As JustTFS suggested tags is one way to go. The problem I've found with that, is that build definitions by default are set to run on any agent regardless of tags. So while you can tag an agent as ProjectX, and set all of ProjectX's builds to only use agents with that tag - ProjectA's builds which probably just use the defaults will also use ProjectX agent if it's available.
What I prefer to do nowadays (I used to use the tag approach), is to have a build controller for each Team Project. This way ProjectX build definitions are set to use ProjectX controller. And since ProjectA build defs are set to use ProjectA controller (or some common controller), ProjectA builds will never be run on ProjectX build server(s).
Upvotes: 2
Reputation: 4777
Build controllers are tied to a Team Project Collection, you can't really specify a particular project exclusively.
What you can do is use Tags, and tag a particular build server (Agent) with a Tag (ProjectA). you can then specify that tag within a Build Definition so that, that build will only run on a build server with that Tag.
The example shows my legacy code VS2008 Build Controller Tag. you can also filter Agents by specifying their name in the name filter
Upvotes: 1