Multi-Build Strategy

Hi
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

Michael

4 comments
Comment actions Permalink

It seems good.
Here was a thread with very similar requirements, take a look
http://devnet.jetbrains.net/message/5307976

Michael

0
Comment actions Permalink

Michael
Thank you for posting a link to the other thread. The configuration topology in the diagram you posted looks like what I want to do.

Next question - how do the results get packaged together between the different configurations? i.e. will I need to go to each configuration's build log to see their independent task results - or can the final "Package" configuration collect all the indivifual task results and have a single summary report?


thanks
Michael

0
Comment actions Permalink

The logs will be split between configurations, they are not collenced into a common place.
Usually you don't need to have all the reports on a single page - when tests are green, you don't have to look into compilation logs. And if compilation fails, test configurations show an error.

0
Comment actions Permalink

Thanks for the responses, Michael. I've got enough now to move forward

Michael

0

Please sign in to leave a comment.