Question

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:

  • PHP application
  • ASP.NET MVC app
  • ASP.NET web service

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:

  • will check out the appropriate branch from Subversion
  • runs a build if necessary
  • deploys to a remote IIS server
  • allows rollbacks to previous copies of the code
  • has a web interface or can be run with a single CLI command (i.e. one click deploy)
  • has some file management capability to move files, create shortcuts, write to files, etc. (remotely)
  • can run SQL scripts if necessary
  • is open source or free to use

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top