Skip to content

jwolstenholme/pimp-my-ci

 
 

Repository files navigation

Pimp My CI

Designed to provide full control over a LED-strip as a means of representing a build pipeline and responding to its changes.

An example in action: http://youtu.be/3Q9-lJn2KD8

Build Status

Features

  • Full control over each LED - all colours, all brightness levels
  • A set of LED animations are available (many more are possible)
  • Can play a sound (or a random selection from a group of sounds) for each pipleline event - start/end build, success, failure, etc
  • Jenkins support ready - more on the way!
  • Way less hassle and cost than some of the existing build lights.. The entire kit - including the Pi - should only be a bit over $100
  • No need for a cumbersome dedicated monitor and all that goes along with it

What do you need?

Raspberry Pi (Type B) running Occidentalis v0.2

Follow the wiring and hardware setup instructions detailed here. Yes, a little soldering may be required, but it takes all of five minutes and it's part of the fun!

Besides the Pi itself, these components or equivalents (which are detailed in the above Adafruit article) are required:

Once you're all soldered up, plugged in and powered on, ssh pi@raspberrypi.local using password raspberry and do some (or all) of the following:

If you want to play sounds at all (mp3's only):

$ sudo apt-get update
$ sudo apt-get install alsa-utils
$ sudo apt-get install mpg321

Then:

$ git clone https://github.com/jwolstenholme/pimp-my-ci.git
$ cd pimp-my-ci
$ sudo cp scripts/pimp-my-ci /etc/init.d/
$ sudo vi /etc/init.d/pimp-my-ci
$ sudo update-rc.d pimp-my-ci defaults
$ sudo service start pimp-my-ci

Then watch (and maybe hear) the fate of each of your builds!

Development Guide

So you want to customise your lights? No problem!

Included in the source is a gui runner which emulates the LED strip for local development & rapid testing. To get started on that just follow these steps.

  • Install the Kivy GUI library from http://kivy.org/
  • To run the gui simply execute
./run-gui.sh

In order to play sounds mpg123 must be available. These easiest way to get this is via homebrew

brew install mpg123

To run all of the unit tests in the project (admitidly not many there at the moment) execute the following from the project's root directory.

python -m unittest discover

To contribute your modifications back to the community simply create a pull request. Please ensure that both the development gui and the raspberry pi code continue to work.

About

Raspberry Pi based LED-strip visualisation of a build pipeline

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.8%
  • Shell 1.2%