Close

In the beginning...

A project log for Jenkins Led Strip Indicator

Visualise your teams Jenkins job status in physical way

jstenjsten 05/13/2018 at 12:090 Comments

Throughout all my life I have been fascinated by light installations, and especially those involving LEDs. And, as the years has passed by I have made quite a few projects heavily oriented around leds in one way or another. Most of these projects has been failures, and are now residing, partially completed, in a box or drawer somewhere. However, just like a bland squirrel occasionally finds a nut, some of my projects actually have succeed and been appreciated by myself and other people. On this list we find the led clock, my simple temperature display, but most notably, and for which this project page is about, my Jenkins Led Strip Indicator.

It all started, back in 2011, when Sparkfun was selling some 1m 32 LED WS2801 strips for bargain price, $25 at the time. They were sold as ding and dent, there were some problems with the coating, but otherwise fully functional. Now, being the LED kind of guy, I had been drooling over these badboys quite a while but they where crazy expensive ($45), and it had been hard to justify buying one. So, when they were sold at almost half the price, I just couldn't help myself and had to buy one. But, once received, and the initial adrenaline kick had worn of, it quickly found its way into a box and got forgotten,. Although cool and flashy, I simply found no use for it.

Fast forward one year, and I was once again spending my limited student loan buying stuff from Sparkfun. Among the things I picked up was a mbed ARM LPC1768 micro-controller, without really having a purpose. And yet again, despite it having a really flashy online IDE and a freaking M3 ARM Cortex, it ended up in the box of long forgotten things.

Fast forward yet another year, I was done with my studies and I was spending my time as a full time employee writing code for a compiler. I had also spent the year introducing the concept of continuous integration (and continuous delivery) to the team and company. Previously building and testing was done locally by each developer before committing the code into the SVN repository. When you got test failures of build problems that you couldn't derive from your changes, then you sent an email to the other developers asking if anyone could reproduce the problem, or if they might have broken the code. Of course this wasn't ideal as a lot of time was spent figuring out if my changes had broken something or if it was someone else. So naturally some kind of continuous integration was needed which provided a green/red indication and central truth about the state of the code base.

After a short evaluation we picked Jenkins, I had previous experience and out of the bunch at the time it suited our needs. Now, I will not go into details about the benefits of a continuous integration system and which system to choose. All I'm going to say is that it accelerated the development and the developers could focus on writing code.

The number of jobs on the Jenkins instance grew quite rapidly and after a few months there were more than a hand ful of jobs. Things started to get out of control, there were too many jobs and it started to become a hassel to overview all the jobs through the Jenkins UI. So, we needed a fast and convenient status indicator. That was when I got the idea for a new LED project, a project which would connect to our Jenkins instance and poll the status of jobs and present in a simple and visible way. All of the sudden the seemingly pointless purchases a few years ago made sense. I quickly pulled out the old boxes with the WS2801 LED strip and mbed micro-controller and started connecting. That is how the first prototype was made...

Those old Sparkfun boxes

Discussions