It is sometimes necessary to manage the Build Agents' workload more effectively. For example, if the time-consuming performance tests are run, the Build Agents with low hardware resources may slow down. As a result, more builds will enter the build queue, and the feedback loop can become longer than desired. To avoid such situation, you can:
- Establish a run configuration policy for an agent, which defines the build configurations to run on this agent.
- Define special agent requirements, to restrict the pool of agents, on which a build configuration can run the builds. These requirements are:
- Build Agent name. If the name of a build agent is made a requirement, the build configuration will run builds on this agent only.
- Build Agent property. If a certain property, for example, a capability to run builds of a certain configuration, an operating system etc., is made a requirement, the build configuration will run builds on the agents that meet this requirement.
You could split agents into pools. Each project could be associated to a number of pools. See Agent Pools.
Establishing a Run Configuration Policy
To establish a Build Agent's run configuration policy:
- Click the Agents and select the desired build agent.
- Click the Compatible Configurations tab.
- Select Run selected configurations only and tick the desired build configurations names to run on the build agent.
Making Build Agent Name and Property a Build Configuration Requirement
To make a build configuration run the builds on a build agent with the specified name and properties:
- Click Administration and select the desired build configuration.
- Click Agent Requirements (see Configuring Agent Requirements).
- Click the Add requirement for a property link, type the agent.name property, set its condition to equals and specify the build agent's name.
- Click the Add requirement for a property link and add the required property, condition, and value. For example, if you have several Linux-only builds, you can add the teamcity.agent.jvm.os.name property and set the starts with condition and the linux value.