Tuesday, April 3, 2012

Running your build server on Azure(continued)

I talked about running your build server on Azure before. Although this solution worked, it was a cumbersome and time consuming process. You had to install, manage, patch, etc the build machines yourself.

Last week at VS Live, Brian Harry announced and demonstrated a better solution: a new cloud based build service for Team Foundation Service on Azure. With this new service, you can just use a pool of build machines that are manage in the cloud (though you can still install and manage build machines if you like). And, of course, you can do more than just build – like with on-premises TFS, you can run a default workflow that includes, compilation, testing, etc or you can create a custom workflow that does whatever you like.

The new build service works by maintaining a pool of Azure VM roles that can expand and shrink as needed. When you start a build, a VM is allocated from the pool to run your build. Your build is run, the build output is copied off the build machine then the VM is restored and it is returned back to the pool for someone else to use.

This new build service should be enabled for all new and existing accounts on Team Foundation Service.

You can create a new build definition, queue a build, etc the same way you would if you managed the infrastructure. The one difference is that you need to pick the “Hosted Build Controller” in your build definition rather than a local build controller. And (because we don’t have UNC shares in the cloud), you configure the build output (Drop folder) to be a path in version control.