On which system (TC server or agent) does a build actually run?

I'm new to TeamCity, and have a very basic question - On which system (TC server or agent) does a build actually run?

We are buiding up systems with separate TC server and agent systems (VMs), and wonder if we should make agent systems the same configurations (CPU/Mem/Network/etc.) as the server, or less than the server.


We found pretty much detailed recommendations for TC server in documents, but not for agents.

Expecting a quick response, thanks!

6 comments
Comment actions Permalink

Builds are run on the agent. TC Server monitors the agents and send out commands to do jobs as configured in the build steps. Good configuration on the agent machine allows to complete the build tasks faster.

Hope that helps.

0
Comment actions Permalink

Thanks for your reply.

If we have different build settings for different projects (extreme example will be Java projects and .net projects), then the SW components (run-time, libraries, etc.) difference will be mainly on agents (but not TC server), right? If that's the case, why TC server is recommended for good configurations (CPU/Mem/...)? Shouldn't agents have better configurations than TC server?


As a common (good) practice, the artifacts should be stored on agent, right?

Thanks!

0
Comment actions Permalink

Agent requirements depend on the build tasks that it performs, it can have low or high configuration. I think that is the reason why agent requirements are not specified in the TeamCity docs. Refer this document for more details.

Artifacts are automatically uploaded to the server machine after completing the build task so that they are available for download. Artifacts can be downloaded even when the build agent is down or busy.

0
Comment actions Permalink

One more question - if we have some Java builds on one agent and some .NET builds on another agent, will the corresponding libraries (Java and MS) be installed on the differemt agent respecitvely? TC server should not have those SW installed, right?


Thanks again!

0
Comment actions Permalink

To clarify that we are planning to completely separate TC serve and agents, i.e.

there will be no agent on the TC server VM and all the agents will reside on their own VMs.

0
Comment actions Permalink

Yes, thats correct. TC server doesn't need to have any libraries related to the build tasks. Agents should have the corresponding prerequisite libraries. You have to set the agent requirements in the build configuration so that the appropriate agent pickup the task from build queue.

0

Please sign in to leave a comment.