We are using TeamCity to do a build and then deploy to different environments but our solution is not entirely perfect. Currently we have 5 builds setup in TeamCity. The first is the master build which is triggered by a checkin and publishes artifacts. Once build our Dev deployment kicks in and publishes the artifacts to our development server. The third build deploys to our QA environment, this is triggered manually and will publish the most resent master builds artifacts. The fourth build deploys to our beta environment, again this is manual build which will publish the last pinned master build. And finally the fifth build publishes to our production environment, this is also manual and will publish the last pinned master build.
What we want to acheive is some sort of chain where The QA build picks up it's artifacts from the development build, the Beta from QA and Production from Beta.
The other problem we have with our existing setup is tagging subversion after doing a deployment. The tagging works for a release to QA as we release the most recent build however for Beta we do not know what revision has been pinned. Is there anyway to achieve this with TeamCity or do we have to do something with nant/msbuild?