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. ;)

posted on Monday, July 03, 2006 1:13 PM by jatwood

Comments

# Subscribing to Team Foundation Server Events


In my previous post, Setting up Continuous Integration with Team Build, you probably noticed that all...
Monday, July 03, 2006 2:10 PM by Team System

# VSTS Links - 7/5/2006

Dave McKinstry on ASP.NET 1.1 projects with Team Foundation Version Control , Understanding ChangeSets...
Wednesday, July 05, 2006 9:18 PM by Team System News

# Automatic email notifications when a work item is assigned


A common request in Team System shops is for an automatic email notification when a work item is assigned...
Thursday, July 13, 2006 1:40 PM by Team System

# Automatic email notifications when a work item is assigned


A common request in Team System shops is for an automatic email notification when a work item is assigned...
Thursday, July 13, 2006 1:43 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Friday, July 14, 2006 3:43 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Friday, July 14, 2006 3:46 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Friday, July 14, 2006 4:38 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Tuesday, August 01, 2006 4:10 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Tuesday, August 01, 2006 4:10 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Tuesday, August 01, 2006 4:11 PM by Team System

# A Kinder, Gentler Continuous Integration service for Team Foundation Server


In an earlier post, I documented how to set up Microsoft's unofficial Continuous Integration solution...
Tuesday, August 01, 2006 4:24 PM by Team System

# Continuous Integration with Team Build

Jeff Atwood started out with the continuous integration with MSDN CI sample&amp;nbsp;for Team Build.&amp;nbsp;...
Wednesday, August 09, 2006 7:02 PM by Buck Hodges

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked (forum post 1 and forum post 2) how to subscribe to the CheckinEvent...
Friday, September 29, 2006 8:10 PM by Buck Hodges

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked (forum post 1 and forum post 2) how to subscribe to the CheckinEvent...
Saturday, September 30, 2006 6:01 AM by Buck Hodges

# Video: Implementing Continuous Integration: With and Without Team System

Paul just alerted me to the fact that my TechEd Europe presentation on Continuous Integration with and
Sunday, December 10, 2006 11:15 AM by ISerializable - Roy Osherove's Blog

# Video: Implementing Continuous Integration: With and Without Team System

Paul just alerted me to the fact that my TechEd Europe presentation on Continuous Integration with and
Monday, December 11, 2006 4:38 AM by Community Blogs

# re: Setting up Continuous Integration with Team Build

Jeff,

I know it's been quite some time since this was published, do you still use this approach with CI and has it been installed at any clients with success? Mitch Denny has a cool idea about dependency replication with their TFS Integrator, have you seen anything similar and how do you do it?

Thanks for all the good articles along the way, they've made my learning TFS enjoyable.

Stephen
stephenpatten gmail

BTW, can you send me another sticker? I have on each machine that I've built.
Friday, March 30, 2007 2:37 PM by Stephen Patten

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked ( forum post 1 and forum post 2 ) how to subscribe to the CheckinEvent
Thursday, August 30, 2007 8:05 PM by Buck Hodges

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked ( forum post 1 and forum post 2 ) how to subscribe to the CheckinEvent
Saturday, February 02, 2008 6:23 PM by Buck Hodges

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked ( forum post 1 and forum post 2 ) how to subscribe to the CheckinEvent
Saturday, February 02, 2008 6:25 PM by Buck Hodges

# Adding a path filter to a CheckinEvent subscription using bissubscribe

This week, a couple of people asked ( forum post 1 and forum post 2 ) how to subscribe to the CheckinEvent
Saturday, February 02, 2008 6:30 PM by Buck Hodges