Monday, June 10

Continuous Delivery of ASP MVC with Jenkins and MSDeploy

We have been using Jenkins to deploy our web application for a while using continuous deployment, that is we used to push our changes into our git repository, go into Jenkins and run the deployment job.
Last month after successfully working in this way we decide we can trust ourselves and our systems and move to continuous deployment (or more accurately continuous release).

The ingredients

We divide the deployment process into several jobs and connect them all together using CloudBee Build Flow plugin.

The Jobs
  1. build & test - This job build and test both debug and release configuration of our web application
  2. deploy - This job deploy our web application using MSDeploy
  3. end-to-end-tests - This job run end-to-end test on our production web application using Watir web testing framework
  4. continuous delivery - This job is a build flow job that simply run jobs 1,2,3 in order. If anything goes wrong it notify us.
What's still missing?
  1. Staging - We are working on deploy our web application into staging environment and run the end-to-end test on it. This does not guaranty success but it does catch errors. 
In the next posts I'll go into details about each of the jobs.