Roy Osherove

View Original

Continuous integration with Team System and Team Foundation Server

Team foundation server is a monster. Seriously, it's so big and heavy, that trying to do something as simple as adding custom actions to a build process, reading the documentation and googling on how to achieve this is like drinking water from a fire hose:

  • There's way too much to sift through
  • It stinks
  • After you are done you wonder if you weren't better off just sitting at home watching TV for a week.

Take continuous Integration (CI for short)for example. The basic idea is that whenever a checkin occurs on the project's codebase, an automated build is triggered that also does lots of other things (like run all the unit tests etc..). If that build fails you know almost immediately that you checked in code that broke the build. When you have CI in place as part of your development process, you can work through your integration problems much more quickly and with less pain as you keep building the software, and not hog them all until the last month of the project where suddenly everything goes wrong and everyone pulls their hair out. With CI in place, the release build should (hopefully) be just another automated build, nothing more.

How easy it is to do CI with Team System?

It's impossible to do it out of the box - you can't hook into the source code eventing system in any humanly-reasonable way.

  • It's so bad that a PM from Microsoft had to post an extension to Team System in the form of an installer to get this to work.You can download the CI support for Team Foundation Server here as well as read the instructions on how to use it. Here's the MSDN article that describes it in more detail.
  • Update: Also, Mickey Gousset sends word of TeamCI - a Continous Integration solution for Team System (no real docs yet..)