Recently, we spun up a new team at Blinds.com to work on a critical add-on called Blinds Tracker for both our production web platform and our soon-to-be-released Autobahn platform. In addition to being the Product Owner I am also handling DevOps tasks. One of the fun things I did for the Autobahn team was to put up a physical build light from Delcom that glows green when all is well, blinks blue when a build is underway and flashes red when the build is broken. I built the necessary utility in .NET and so the light has to be plugged into a Windows laptop that sits off in a corner polling TeamCity from time to time.
Once I had the new project building on TeamCity I decided I wanted a build light for it too. Besides being a stop on the company tour, it provides a nice visual indication of the project’s health for me, the other team members and stakeholders that can see it from across our open floor plan office. It’s a different team so I didn’t want to share the Autobahn build light; When it turns red, it should be because Autobahn is broken. The teams don’t sit in the same area so I can’t really plug a second light into the existing laptop either.
Sounds simple right? All I have to do is purchase a Delcom visual indicator, grab an old Windows laptop, install my utility and hook it up. Unfortunately, we don’t have any unused laptops around so I’d have to requisition one. I jokingly discussed it with one of the developers on the team and he said, “well, you’ve been working with Node.js. Why don’t you just get it up on a Raspberry Pi.”
So in typical geek fashion I set out to save a few hundred bucks by spending some indeterminate hours of my personal time putting together a Node.js build light application for Raspberry Pi. I’m lazy so I ordered the Raspberry Pi B (512MB Ram, 2 USB Ports, HDMI and Ethernet), a USB Wifi dongle, a micro USB power supply, an 8gb SD card and a clear case from Amazon. I also ordered a tri-color USB visual indicator from Delcom. It will all arrive at the house early next week. In the meanwhile, I’m going to start building a Node.js website to configure settings and a TeamCity poller that will eventually drive the light. I think I can get it setup to work on any platform that supports HID so it will likely work on various flavors of Linux, Mac and PC in addition to the Raspbian Linux distribution for Raspberry Pi. It will be an open source project and I’ll put the source up on Github. Should be fun.