Welcome to BuildBotIcon
BuildbotIcon is a system tray monitor for the Buildbot continuous integration framework. It shows a colored icon (the BuildBot nut) and changes it depending on the statue of your builders. It also has the ability to control lava lamps via a Phidgets USB board.
- 2011-01-04 - Started on Python version (using PyQt), see source
- 2009-06-30 - Java version updated, very simple sound support, see Changelog
- 2009-05-17 - Java version updated, see Changelog
How to get it
Just install it:
- TODO (a ready-to-run all-in-one executable for Windows or MacOS X)
Install required libs and BuildbotIcon:
- Install Python and PyQt
- Install BuildbotIcon, by eihter
- Downloading the egg or windows installer from PyPi.
easy_install buildboticon. Get easy_install by downloading ez_setup.py and run 'python ez_setup.py'.
Build it yourself:
- Download source from PyPi, or from bitbucket
- Build it yourself with setuptools (will be automatically installed if you run setup.py). Run
'python setup.py install'in the python subdir.
Note that you also need to download and install PyQt.
Just install it:
- Install the (Java Runtime (1.6 or later), if you don't have it.
- Download the BuildBotIcon.jar directly.
Build it yourself:
- Download source or clone the repo from bitbucket.
- Build using Ant. Run
'ant jar'in the java subdir.
How to run it
After installing, there should be a buildboticon.exe file in your
<pythondir>/scripts directory. Place that in Start Menu -> Startup and edit the shortcut to point to your configuration file.
The python/scripts dir should contain a buildboticon script after the egg has been installed-
Add a shortcut to the .jar file in Start Menu -> Startup and edit the shortcut so that the path to your configuration file is given to the .jar file.
Just run 'java -jar BuildBotIcon.jar <path_to_config_file>' wherever you write things that should start automatically.
How to configure it
See the sample config. It should be pretty self-explanatory.
(Don't name your builds trigger_0 or polling_interval, that's just silly.)
How to connect lava lamps
(Be careful if you use main voltage to drive lamps, and make sure you know what you're doing)
Hardware: (see my lavalamp blog posts for pictures and tips)
- Buy a Phidget interface kit 0/0/4 from Active Robots (UK, delivers WorldWide).
- Get the Phidgets driver kit (includes the necessary phidget21.dll)
- Test the kit via the supplied tray application
- Put it in a box and add suitable connectors from power and and to the lamps.
- NC (normally closed) -> ok/warning
- NO (normally open) -> error/exception/master lost
- Connect it to your computer and use a test-light or ohm-meter and the Phidgets app to make sure your wiring is ok. Especially, make sure there under no circumstances is a direct connection between the two voltage input leads.
- Add suitable trigger_[0-3] statements to the buildboticon-config file.
- Make sure the buildboticon has the phidget21.jar file in the same dir, and that the Phidgets SDK is installed.
- Start the app, look for popups and check the about box to see that things seems to be ok.
- Connect lamps and power.
- Enjoy. :)
Short note on Active Robots. They were very nice and helpful when my local post office messed things up. That kind of kindness should be supported and returned, so if you're planning to rig your own lights, please consider ordering from them.
See my blog for some pictures.
How to contribute
Use issue tracker for bugs/issues/feature requests.
The BuildBot-devel list is a good place to ask questions about it.
Hacking the source
Just download the source (or simply create your own fork here on Bitbucket), hack away and let me know if you come up with something that you want included. :)
Spread the word
If you like it/use it, please let me know!
BuildBot is written in Python, but I did this app in Java because:
- It's more cross-platform (the system-tray API, that is).
- I already knew how to code Java when I started to use BuildBot.
- We used Java, but not Python, at the place where I was when I wrote this.
I've been hacking more Python lately, so I might do a version there someday too. (especially now that it has lava lamp support, adding a Status item on the buildmaster would be fun)
Phidget popup messages:
Phidget Interface Kit 0/0/4 board: