I'm in the process of switching from CruiseControl to TeamCity, and I have everything up and running but there's a behavior I would like to ideally implement. Basically I have 3 environments: dev (not built in team city), staging, and production. Currently and previously, I use svn tagging to mark releases to staging and production, and staging pulls from trunk while production pulls from the staging tag.
I am very interested in the Snapshot Dependency feature in TeamCity, but it has a blocking limitation for me if I understand it correctly. What I would like to do is run staging builds from team city for the QA team to test, and have a snapshot dependency on staging from production.
The problem, as I see it, is that if they are both linked to my svn trunk, as is required for snapshot dependencies, then if I try to run a production build, it will build on the head of trunk and force a staging build if there isn't one for the head revision first. What I would LIKE it to do is to run a production build on the most recent successful staging build.
The reasoning is that I might complete my development for a given release cycle, move on to other things during testing, and then do a release once testing is done. I know I have other options, such as a stable-trunk/feature-branch svn strategy, or do a manual teamcity revision build for production, but I'd like to make this as simple on myself as possible.
Thanks in advance,