The Jenkins Bell rings …

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:

How to get it?

Use git to get a running version from github with a single command:
git clone git:// /Applications/

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.

9 thoughts on “The Jenkins Bell rings …

  1. James B

    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?

    1. okrammercs Post author

      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?

      1. James Bowkett

        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.

  2. okrammercs Post author

    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 …

      1. okrammercs Post author

        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…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s