At the other end of the scale is personal software development on my laptop. Here I want something more lightweight that the excellent Jenkins, and I want builds triggered not on revision control checkins, but on every save. In essence, something compatible with the team-focussed environment, but something even more agile and lightweight.
My personal development is more likely to be in Python than anything else, and I like to write my code test-first. Normally I have three windows open - one editor for code, one editor for test code, and one shell with onchange.pl running to automatically run tests every time a change is made to tests or code. This is all well and good, but it still requires me to take my focus off the editors and check that tests succeeded in the shell window. This can be improved upon.
Enter my latest toy, blink(1). It's a USB multi-coloured RGB LED, that's easily programmable with code available. But they provide a command-line tool which is sufficient for many use cases.
With a small script that checks the result of the test run, it's very easy to get blink(1) to give me a quick visual indication of the result of my development efforts. It's as simple as...
#!/bin/bash
nosetests
if [ "$?" -eq "1" ]
then
blink1-tool --red --blink 5 2>&1 >/dev/null
else
blink1-tool --green 2>&1 >/dev/null
sleep 5
fi
blink1-tool --off 2>&1 >/dev/null
Maybe it's a bit gimmicky, but so far I'm loving it!