Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why and when to have multiple build agents?

Tags:

tfs

tfsbuild

Consider TFS 2010's ability for a Build Controller to have 1+ build agents. Since builds are a subjective topic to the team/environment, consider an environment where builds are performed on commit/check-in. Each Project Collection will have 10+ Team Projects, but perhaps only 1 or 2 are being committed to in a day.

  • When should a TFS administrator consider creating a new build agent?
  • Do multiple agents run in parallel?
  • When a single agent is defined to a Build Controller, does it run serially?
  • MSDN states: "if you set up your agents to have specialized capabilities..." . What does this mean? A technology/platform differentiator? How can you setup your agents to have specialized capabilities?
  • How can 'tagging' build agents be used effectively in an environment where builds are (typically) performed on each check-in.
like image 346
p.campbell Avatar asked Jan 26 '11 19:01

p.campbell


People also ask

Can we deploy multiple build agents on one machine?

Install Multiple Agents on One Machine If a machine is capable of running several concurrent builds, you can install multiple TeamCity agents on it. However, we recommend running a single agent per (virtual) machine to minimize builds cross-influence and make builds more predictable.

Can TFS have multiple build agents?

Answer: Yes, you can run multiple agents on the same machine. To install an additional build agent, make sure to download the Agent. zip file from your TFS again (do not just copy the existing Agent folder as it contains configuration) and run the ConfigAgent. cmd file to register the new agent.


2 Answers

You use multiple build agents to support multiple build machines (I work currently with a build farm with 3 build machines - and thus 3 build agents - to distribute the load).

You also might want to have multiple build agents to be able to run builds in parallel. This is a nice feature to share resources, but a requirement when you start working with Test/Lab Management features.

With the capabilities: for example you can setup a build agent with version 1 of a 3rd party component, and a second build agent with version 2. With tagging you can specify in the build definition which build agent it will choose from out of the pool of build agents.

like image 95
Ewald Hofman Avatar answered Oct 22 '22 18:10

Ewald Hofman


We use 2 build agents on the same machine at work, since we only have one build machine.

The first one handles our CI builds, and is tag with CI. The build definition for the CI build is set up to only use agents that have the CI tag.

The second one is for manually queued builds, mostly for the release branch builds.

I specialized the CI build agent, because it was not uncommon when we were preparing a new build for QA to have several developers check into the development branch, which would slowing down being able to release the build to QA.

like image 4
Sean Lynch Avatar answered Oct 22 '22 19:10

Sean Lynch