How do you deploy

time to read 3 min | 459 words

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:
    • Run>Start>CMD
    • cd \
    • md ProjectName
    • cd ProjectName
    • \\tools-srv\subversion\svn co svn://subversion/ProjectName/trunk .
    • msbuild default.build /p:EnableTest=False /p:ConnectionString="Data Source=..."
      /p:VirtualDirectoryName="ProjectName" /p:RebuildProdDatabase=True
    • Wait...

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.