Is it possible to use single physical PC as a number of agents
We use TC and we have build agents for most of platforms. Very often our overall build times are stuck waiting for some platform that has less build agents. For example, imagine we have hundreds of developers ten Windows build agents and only one Linux build agent, in this case overall builds will be stuck waiting for that single Linux build agent even though we have many agents for other platforms. I'm thinking to setup some powerful PCs with VMs for most of build targets, for example, same physical machine could host linux, windows, osx, android build agent VMs. So... TC will see 4 build agents instead of 1 physical machine. Question: can TC be configured in such a way so that when any one of these 4 is used, then other 3 are considered busy as well so that TC would not try to run multiple build jobs on single physical PC?
Please sign in to leave a comment.
Hi Pavel,
What you are asking for is quite strange. First, to keep that many agents, you would need an equal number of licenses, just so that they can connect to teamcity (the number of agents allowed by the license isn't agents which are running builds, but agents connected in total). Given that, it would make more sense to have all of them available to work in parallel instead of disconnecting or reconnecting.
This said, if you insist on your scenario, an option might be using shared resources. It's a build configuration feature (so you would need to configure your build configurations to use it) that allows to select some resources that will stop other builds that require it from starting.
Another option might be to create some sort of cloud provider plugin that will handle your VMs, but you would need to take care of that by yourself.