DevOps Zone is brought to you in partnership with:

Innovation through insight. Thinking lean and moving agile when delivering software products. Big Data, UX, Apache Wicket, JEE, Spring, MongoDB, Hadoop, R. Comsysto is a DZone MVB and is not an employee of DZone and has posted 43 posts at DZone. You can read more from them at their website. View Full User Profile

The Jenkins Bell Rings …

11.11.2012
| 4833 views |
  • submit to reddit

 

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 …

Jenkins Jobs with GeekTools

Awesome combination of desktop background and geeky job infos.

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.
Color changing dock icon for your convenience.
The context menu to access the webpage of a job or to start a build.
The context menu to access the webpage of a job or to start a build.
Configuration Window
Easy to use configuration window to configure server and jobs.

A popup notification.
A popup notification.
Mac OS X native notification popup.
Mac OS X native notification popup.
Mac OS X Notification Center integration with bundled up terminal-notifier.
Mac OS X Notification Center integration with bundled up terminal-notifier.

Job report for GeekTools
A report for a single job displayed via GeekTool.
Overview report for GeekTools
Overview report for GeekTools
Jenkins Jobs with GeekTools
Awesome combination of desktop background and geeky job infos.

Terminal window with say command example
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.

Published at DZone with permission of Comsysto Gmbh, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)