[Updated] Continuous Integration using an LCD-TV
You have probably seen examples of doing CI (Continuous Integration) using lamps. Shortly explained, the idea is that when the build breaks, the red lamp is turned on and when the build is OK, the green lamp is turned on. It's a pretty cool feature, so I thought of moving this idea a step further! Lamps are for dinosaurs
I have already implemented CI using the excellent example in Khushboo's blog. It's implemented with Team Foundation Server RC. The setup with the LCD-TV can be used in any CI environment, the idea is the same. Every time a developer checks in code, the build process is triggered. The display on the LCD-TV is just a custom website displaying the status of the build-server. The website has an auto-refresh (every 5th second or so) to get the latest status. When building, the screen turns yellow, and when the build fails, the screen turns red. The screen is green when everything is OK.
Here are some screens from our setup:
The OK screen:
The Build screen:
The Failed build screen:
The setup:
The setup is quite simple actually, you need the following items:
- A huge LCD-TV (at least 37" to make the people in the back happy)
- A laptop/PC/server to connect the LCD-TV. This will serve as a client.
- The FireFox browser (it supports blinking text
, IE don't) - A website that displays the result of the process. Should probably be installed on the build server.
and of course, you need a Project Leader that sees the point in investing a couple of bucks in a good development environment. It's not a simple task, but at least it's worth it. The quality of the code will definitively be better and the status of the build is very visible for the project team. My experience is that the red screen is not red for long, especially when your face is on it
Server setup:
- Install TFS Build Service on server
- Install VS 2005 Team Suite or VS 2005 Team Edition for Software Developers (code analysis/fxCop) + VS 2005 Team Edition for Testers (Code Coverage)on server
- Install VS 2005 Web Deployment Projects on server for deployment possibilities. Only needed for web projects, though.
- Create WebSite for CI (for instance http://[tfsserver]:8090). Use code in ci.zip (download further down on this page). Use the same AppPool as TFS (TFS AppPool)
- Configure web.config for CI
- Run the following command on server: “%programfiles%\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\BisSubscribe.exe /eventType CheckinEvent /address http://[tfsserver]:8090/service/WebService.asmx /deliveryType Soap /domain http://[tfsserver]:8080”
- Check in the following table in SQL server that the subscription is registered: tfsintegration.dbo.tbl_subscription
Possibilities
Ok, you really don't need a LCD-TV to show a red or green screen. But, it's the information that is important. You could for instance display burn down charts, code quality, test result etc. when the screen is green. And how about a blue screen (no, not a BSoD) when the standup meeting is supposed to start (to get the team members attention). There are a lot of possibilities with this setup.
(update) Install and setup
Well, people, here is the source code.
The Webapplicaiton includes the status screen as well as the CI example in Khushboo's blog (a little modified, but mostly the same). Install the webapplication as a new Web Site in IIS (with a different port) on the build server (in my environment, I am running the build and tfs services on the same server). The status screen is using the TFS API instead of the webservices, so all DLL's need to be installed on the server running the status screen application. It should be possible to use the webservcies as well, if this setup doesn't suite you.
A couple of things:
- Remember to trigger the checkin event described in Khushboo's blog. The WebServcie is included in the web application in the CI code package. it's located in the Service folder.
- Remember to set the correct Application pool for the web application. It should be the same pool as for the TFS web application (TFS AppPool or similar)
- Use FireFox as the browser on the client machine connected to the TV. If you remove the standard toolbars and hit F11 the status page will fill the whole screen, which is really nice. It also supports blinking text.
- Do anything you wan't with the code and use it as you like, I don't care, but I'm interested in any cool changes you do to it, maybe it could be an Open Source project in the future.
- Don't spam me with support issues. Please post them in this blog, maybe we can figure it out together.
Good luck!
Feel free to come with ideas and feedback of the setup.
3 Comments to [Updated] Continuous Integration using an LCD-TV
There is a similar project on CodePlex: http://teambuildscreensaver.codeplex.com/ which displays the status of multiple builds simultaneously.
[...] Updated Continuous Integration using an LCD TV hamang net Posted by root 2 hours 17 minutes ago (http://hamang.net) Mar 9 2006 1 comment to updated continuous integration using an lcd tv jim liddell january 15 2009 hamang net is powered by wordpress Discuss | Bury | News | Updated Continuous Integration using an LCD TV hamang net [...]
Team Build Screen 1.2.0 has been released which includes a number of bug fixes as well as the ability to have older builds appear faded, providing an indication of how recent they are.
Leave a comment
Search
Knut Hamang
Recent Posts
Recent Comments
- Jack on Html to Pdf in .NET
- Øyvind on Creating dynamic menus in EPiServer
- Jim Liddell on [Updated] Continuous Integration using an LCD-TV
- Arshika on Html to Pdf in .NET
- Arshika on Html to Pdf in .NET




January 15, 2009