We have just recently starting using TeamCity instead of CruiseControl for some of our builds.
What I have setup is a configuration template that does the following:
- Build the software from a subversion repos
- Restores a database backup to a given SQL server
- Upgrades the database to the version that matches the built software
- Runs some performance tests in code that utilizes the newly restored database.
I want this to execute nightly, for both the trunk and for a latest release tag to be able to compare performance metrics.
This setup is easily done in TeamCity letting the Tag configuration depend on a succesfull build of the Trunk configuration.
The challenge is, that the restore database and upgrade step takes several hours to complate for both trunk and tag. Actually so long that it becomes hard to run both configurations during the night.
So one solution, could be that the Tag build, only does the three first steps, if there was actually some changes in the Tag branch. I.e. we have had to create a hot fix to a previous release.
Is it possible in Team City to create such a schedule?
1. Run Trunk configuration completely every night (step 1-4)
2. When finished, investigate Tag in Subversion
a. If pending changes - do all 4 steps
b. If no pending changes only measure performance
Let me know if any of you need any further details to answer this.