I'm looking for some guidelines on what would be a best practice build system to allow automated deploys from subversion code to remote websites.
Currently I run a test and production branch for each environment for 3 apps:
I deploy the ASP.NET apps via Web Deploy from Visual Studio and the PHP app from WebMatrix. It's better than nothing but still requires I load Visual Studio or WebMatrix and the application to do a deploy and I've found deploys from WebMatrix somewhat unreliable with some files missing after a deploy.
Ideally I'd like something that:
I'm not sure if I should using TeamCity (Professional), writing a MSBuild script, writing a WebDeploy script, or what. I'd probably run it on a build server.
You can use TeamCity for it or a custom MSBuild script scheduled in normal Windows scheduler. One way or another, you will need to customize MSBuild script. You can then use it in TeamCity.
Personally, I would go with TeamCity. Using custom build tasks should allow you to do everything you want. TeamCity is free for commercial and non-commercial use.