After suffering the agony of deployment (a deployment that took effort from the whole team, for a looong time), I decided that I really believe in automated deployment. Not just a build script or continious integration, but automatic deployment.
I just recently finished documenting the deployment tactic (which I still consider flawed) in the current project. It goes like this:
- Verify that (all of it was missing when I first tried it):
- The machine has .Net 3.0 and IIS
- That you have a database server
- That IIS is running
- That ASP.Net 2.0 is the registered on IIS
- From the machine you deploy to:
- cd \
- md ProjectName
- cd ProjectName
- \\tools-srv\subversion\svn co svn://subversion/ProjectName
- msbuild default.build /p:EnableTest=False /p:ConnectionString="Data Source=..."
It is flawed because I need to log on to the destination machine, and it is more than a single step. Ideally, we would be able to do it with a single command. The effort pays off the moment I able to push new changes to staging and QA in a matter of minutes.