We are deploying a long-running build configuration to TeamCity. How will TeamCity distribute it to agents if we allow it to run on any agent?
In a fresh workspace,
- a clean checkout takes 15 min
- a clean build takes 90 min
In contrast, incrementally we have
- a checkout at 1 min
- an incremental build with the median of 10 min
Obviously, there's a strong incentive to rerun the build in a previously used workspace (105 min vs. 11 min).
Now suppose such a build is triggered, and TC has to decide:
- to run the build immediately, in a clean workspace (105 min)
- to wait for a "scandalous" 30 min and run it in a previously used workspace (30 + 11 = 41 min)
Will it correctly pick the latter?
I guess for this to be possible, TC would have to collect the history of (A) clean and (B) incremental checkout/build times separately. Does it?