Hi folks -- I am in the midst of evaluating TeamCity as a replacement for CruiseControl.NET in a large and complex build system. I am trying to determine if TeamCity exposes an API that allows programmatic manipulation of build configurations -- that is, bypassing the GUI completely. For example, I need to be able to programmatically change the dependencies between two projects without pointing and clicking.
Some background: currently, our dependency management tooling is home-grown and it entails programmatically manipulating CruiseControl.NET's ccnet.config file with automation. Basically, it works something like this:
Edit dependency info in dependency XML file -----> Run tool to generate build order -----> Generate ccnet.config (with required triggers)
Now, the dependency tree for a single "leaf" project often includes on the order of tens and tens of projects and the dependencies between the hundreds of projects typically configured in CC.Net at any point in time is fairly complex -- too complex and tedious to consider modifying the ccnet.config file by hand. Hence, the automation.
Is there a way to do anything similar with TeamCity? Any thoughts would be greatly appreciated. Thanks.