I'm just starting out with TeamCity and looking for some advice on how to properly setup my build configurations. I'm coming from Cruise Control, so this is a new way of approaching the problem for me. If there are existing references that already address this, please point me in the right direction. My initial search in the forum did not uncover anything that answered all my questions
My scenario is as follows:
- I have 5 projects, each with their own build process and OS platform requirements
- Each project has 3 separate types of builds: continuous, nightly, and weekly. The difference being the number and duration of tests run on the successfully compiled binaries
- The OS platform that the binary is built on is not necessarily the same platform the binary is tested on - so I presume I'll need separate agents in these cases: one for the build, and one for the tests
To support all these combinations became an XML administrative challenge in CCNet - and from what I've seen so far in Team City, it looks like it may be a lot simpler - which prompted the switch.
From what I've read so far in the manual, my current proposed approach is as follows:
- Setup separate configurations for each of the different test suite scenarios (continuous, nightly, weekly), 15 configurations total (5 binaries x 3 test suite configurations)
- Setup separate configurations for each of the 5 compile processes
- Setup VCS triggers for the continuous test configurations, and schedule triggers for the nighly and weekly configurations. No triggers will be set for the 5 compile configurations
- Make the corresponding compile configuration a dependancy of each of the test configurations. This way, when a test suite configuration triggers, it will force the corresponding build configuration to run first
- Make the compiled binary an artifact dependancy of the test suite configurations, so the tests won't run unless the binary is successfully compiled, and Team City will handle the handoff of the binary from the build agent to the test agent
I'm sure many people have a common set of requirements - with a continuous, nightly, and weekly/monthly configuration - so presumably this problem has been solved many times before. But, what is likely less common, is my requirement to run the test suite on a different OS than the compile steps (long story as to why...), which increases the number of configuration combinations
Does the above approach make sense in a Team City world? Are there other configuration strategies people propose?
Thanks in advance for any guidance