We all love webapps, but in the former days applications have done so much more. They were integrated into our desktops, they have done notifications in real time, they could be customized to our own needs …
But let’s start at the beginning:
In my current project we have a large number of jenkins jobs running, some of them are responsable for long running tests und some will check if branches merge without conflict. So there is a lot of potential of things that can and will break and in a large team you will be very happy when you can fix it fast, before someone gets hurt
Now, you might say, use the jabber plugin to get notifications and yes we have the jabber plugin running, but the connection between jenkins and our jabber server is somehow unstable.
So I thought, as developer, why not create my own script which let me poll the state of the jenkins jobs and aggregate the results. After a little google session I found the jenkins rest API, hacked a small groovy script which polls this API and done the notification via the Mac OS X ‘say’ command. Later I found a tool in the Apple App Store which allows me to display the output of a command line script on the desktop in really nice way…
So the first incarnation of JenkinsBell was born …
After a short while some colleges of mine got aware of the cool looking desktop background and they used the script too. And like customers, they always want more shiny features…
And so a full featured Mac OS X application was built around the small groovy script to integrate in a nifty way with the desktop.
Currently Supported Features :
- Monitors multiple Jobs on multiple Servers
- Organize Jobs in Groups
- Open Jobs/Builds Page in Browser
- Spoken Notifications (optional)
- Popup Notifications (optional)
- System Tray Integration (optional)
- Dock Integration on Mac OSX
- Notification Center Integration on Mac OSX (via bundled up terminal-notifier)
- Support for authentication token for secured Jenkins
- Configuration GUI
- GeekTools Integration
Enjoy the Screenshot Gallery:
- Color changing dock icon for your convenience.
- The context menu to access the webpage of a job or to start a build.
- Easy to use configuration window to configure server and jobs.
- A popup notification.
- Mac OS X native notification popup.
- Mac OS X Notification Center integration with bundled up terminal-notifier.
- A report for a single job displayed via GeekTool.
- Overview report for GeekTools
- Awesome combination of desktop background and geeky job infos.
- Instead of a screenshot for the spoken notifications, try this command if you like ;)
How to get it?
Use git to get a running version from github with a single command:
git clone git://github.com/comsysto/jenkins-bell.git /Applications/JenkinsBell.app
A full featured readme is although available at github.
If you like the app or if there are any features you might miss, please leave a comment…
My next blog post will describe some of the inner workings of JenkinsBell and how you can build a full featured, build-less Mac OS X application from a bunch of groovy scripts.









Brilliant, just what I needed.
I know this doesn’t nearly get said enough but thanks for putting it online. Much appreciated!
Awesome job
Really Thanks
Hi, This looks awesome but I’m having trouble accessing my Jenkins server over HTTP Basic authentication, I’ve had a look at the code in JenkinsModule.groovy and it appears that all should work fine – are there any known issues with it?
Hi James,
sorry I’m not aware of any issues regarding the basic auth.
Have you created an API token for your user in jenkins?
Hi, Thanks for the quick reply….We’re not using the Jenkins auth stuff (although I did try replacing my username/password with the API token anyway), we’re using apache basic authentication to protect the whole of our Jenkins application. So it can be accessed as http://username:password@host:port/jobs/job-name
Indeed, if I ignore the fact that Jenkins Bell can’t get the current status, I can still use the links to go to job, last build, start build, in my browser as these are already (http-auth) authenticated.
Thanks for the description, this explains the behaviour.
Currently we only support authentication for ‘start build’, because in the default configuration of jenkins the other stuff is public.
I will look into this at the weekend …
Great – thank you – Let me know if you need a hand at all….
Hi,
a new version is available at the master branch, which uses basic auth in every request to jenkins.
Please, let me know if this change have fixed your problem…
This works like a charm for me now. Thanks very much!