Setting up Continuous Integration with Team Build
If you've set up a Team Build server for your Team System installation, you may want to experiment with Continuous Integration, a common agile development practice.
Unfortunately, Continuous Integration support is not provided "out of the box" in Team System. But there's a great MSDN article Continuous Integration Using Team Foundation Build which describes how to set it up relatively easily. It's based on an earlier CI sample that Khushboo provided on her blog. Thanks, Khushboo, for providing a quick, workable solution to such a common customer request!
Installation is straightforward; download ci.msi, run it, and be sure to specify during the install that you want the CI website installed in the "Team Foundation Server" web that runs on port 8080. I tried setting it up in the default web on port 80 and had problems; it probably makes more sense to keep all the Team System stuff under the same web anyway.
Once you complete the install, notice that you have a new folder \ci under the Team Foundation Server website:
The default path for this web app is
C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\CI
Edit the web.config and add the following key under the <appSettings> node:
<add key="1" value="TeamServer=http://tsweb01:8080;TeamProjectName=Demo;BuildType=CI"/>
OK, we've configured the CI web site, but we're not quite done yet. We need to set up a subscription to the checkin event using the bissubscribe tool, which is located at the following path on the server:
C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\bissubscribe.exe
Here's the correct command to subscribe our CI web site URL to the check-in event:
Bissubscribe /eventType CheckinEvent /address http://tsweb01:8080/ci/notify.asmx
/deliveryType Soap /domain http://tsweb01:8080
Now every time a check-in occurs, a SOAP request is fired off to that URL. The CI website then kicks off the specified Team Build for the specified project.
This probably goes without saying, but you'll want to replace tsweb01, demo, and CI with the names of your Team Foundation Server name, project, and build, respectively. ;)