views:

48

answers:

1

I need to deploy a website from the SVN to different servers all within our own network. The code is currently not complied but probably will be in the future.

First the site would need to be deployed to the development server for the developers to test.

Once the Developer signs off it would be deployed to the staging server for the testers.

Once final sign off was given it would be deployed to a server farm, two live servers.

Each server has a couple of settings in the web.config to that are different; expect the two live server of course. I would like to use templates, the way the Ruby on Rails world does, seems like an elegant solution to multiple web.config files.

I also need to create a list/report of the files that were changed and what the change was since the last deployment.

I thinking of writing a script that will do the following 1. Take args for server to deploy to, and revision
2. Export a copy of the source to a directory with svn export -r <deploy revision>
3. Delete the web.config file
4. Use ttree (a template tool http://template-toolkit.org/) to create the correct web.config
5. Create a list of file changes with svn list -r <deploy revision>:<current server revision>
6. Stores the <current server revision> of the website for when the script is run next time

The problem I have is it doesn't seem like the most elegant solution, it could become unmaintainable, and I prefer to use tools that are already available rather than re-invent the wheel. Unfortunately I don't think MSDeploy will do what I need, but I'm happy to use it, or anything else, if it will do what I need it to. Does anyone know of any tools that are up to the task or is the script my only option?

A: 

Check out TeamCity. I have my build server setup so that it can deploy to different environments with different settings based on the build configuration all in "One Click". It's relatively painless to setup and integrates directly with Subversion and other source control systems. This would be a more elegant solution to the issue you are dealing with...

Jason
@Jason unfortunately at the moment the source code is deployed to the web servers, however as I get the development processes sorted out, I will be looking at CI servers, and deploying from them.
TheLukeMcCarthy