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 for Team System.
I was a little.. perplexed.. by the code inside that web service. I took some time to refactor it and polish it up into something I personally found much simpler and easier to understand. For example, I added proper XML comments throughout, and made the log file more visible and timestamped.
It's still 99% the product of Khushboo's hard work, don't get me wrong, but this is a kinder, gentler version of the Continuous Integration web service you could deploy to your Team Foundation Server with the confidence that you could easily modify it if you needed to.
Here's how to set it up:
- Download the code
- Unzip to
C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\CI
- Make that folder an application in IIS, and put it in the TFS AppPool IIS application pool (this is required!)
- Set up a subscription for the CheckInEvent to this web service using the bissubscribe.exe tool:
C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\bissubscribe.exe
/eventType CheckinEvent
/address http://tsweb/ci/notify.asmx
/domain http://tsweb
- Modify the web.config settings to taste. The relevant settings are..
<add key="LogFileName" value="CI-log.txt"/>
<add key="TeamFoundationServer" value="http://tsweb"/>
<add key="1" value="TeamProjectName=Demo;BuildType=CI"/>
And that's it! It's almost.. easy. All this stuff is documented directly in the source, too, so you can just ignore me entirely and have at it with a good chance of "falling into the pit of success".
If you get into trouble, Check the log file at c:\windows\temp\CI-log.txt for troubleshooting, and always be sure you can navigate to the web service HTML page in your browser without an error before troubleshooting anything else.
Updated 8/01: I added Daniel Cazzulino's excellent default.aspx page for selecting projects and builds to the zip file -- no more manually editing web.config!