A queue, not a launch of a TeamCity build when another build is in progress

Our busy enterprise server has 550 active build configurations running on 30 agents. We need a way to prevent some assemblies from starting while other assemblies are running. I already understand the dependencies on artifacts, and this does not solve our problem, since the assemblies are independent of each other, they simply share some resources, such as server port numbers and database connections. Some assembly configurations conflict with each other at the same time, and we need to prevent this by being able to queue the assembly (rather than run it) when one of several other assemblies is running.

We already use silent tricks, such as limiting the build for certain agents, etc. I am thinking of adding the first build step that checks the flag in the db table or something like that, but this will add a lot of failed builds when we really need the right build queue.

Am I missing something? Does this functionality already exist in TeamCity?

+4
source share
2 answers

It looks like you need TeamCity 8 as shared resources . You can already access the EAP here .

+4
source

My huge respect for 550 configurations and 30 agents.

I think you have already found a solution:

  • You have one environment for each agent.
  • Assign a configuration for specific agents

I could imagine how it works. But I think that it is much cleaner and will work much faster than the restriction on the simultaneous execution of several configurations.

0
source

All Articles