Submit button

The iPhone OS 3.0 brought push notifications to most of finnlabs’ mobile devices (iPhone is dominating here). Since we are big fans of Continuous Integration, I wanted to see whether or not we could get notifications about our build status to our phones. It turned out to be rather simple. By combining a) a great iPhone application, b) simple APIs, and c) open source work by others, we were able to achieve this goal.

The Ingredients

Prowl is an iPhone application, that allows to forward Growl notifications to your iPhone via Apple’s push notification technology. In fact, your message is passed from Growl to the Prowl-Growl-Plugin to a Prowl server to an Apple server to your phone. Additionally Prowl offers an API for third party applications such that you are able to use the Prowl infrastructure (servers and iPhone client) for your own good, independent from a running OS X machine.

Prowler is a RubyGem, that wraps a simple Ruby API around Prowl’s web service. This enables every ruby application to sent push notifications using any given Prowl API key.

ShortURL is a RubyGem, that wraps an even simpler Ruby API around multiple URL shortening services. Its as simple as that.

CruiseControl.rb is our favorite Continuous Integration server. We are hosting an instance for over a year now here at finnlabs. Every project is hooked up there. Generally we are monitoring the build status using the build server’s web page or CCMenu. Actually, we never set up the email notifications for build changes, since there was no need to do so.

What we did

CruiseControl.rb knows a simple yet powerful plugin architecture, which allows arbitrary ruby code to be executed on certain build events. By using the above mentioned Prowler gem and the the EmailNotifier bundled with CruiseControl.rb itself, we were able to implement a simple CruiseControl.rb plugin called ProwlNotification. It sends notifications each time the build status of a certain project changes.

If configured correctly, the message will include a link to the project page on your CruiseControl.rb server, so that all necessary information is right at hand. If present, ProwlNotification uses the ShortURL gem to shorten the link.

Get it as well

All that was left to do was writing documentation and installation instructions. You may find everything on the GitHub project page. The code is published under an MIT-style license, so you are able to change and tweak it to your needs. Of course, we would love to here, how you like it.

Enjoy.

Leave a comment

If you can read this, you don't use a typical webbrowser that plays nice with CSS.
Please do not fill in anything here!

back to top