05 April 2013

Jenkins build status widget for Dashing

Jenkins has a lot of great plugins, but I think it lacks a really good plugin for a dashboard/wallboard on a TV. I've tried some of them, but none gives me and the team the information we need.

Some time back, much time was used to find out if our development environments where up and running or not. One of my colleagues even made a cup with the text "Is dev down?".

If found out it was time to do something, then another of my co-workers found Dashing a really nice dashboarding framework based on Ruby, Sinatra and CoffeeScript.

So, what do we need to know to be happy?

Well I found out that we need to know if Jenkins is currently building or deploying any of our apps. As we have "one-commit-deploy" to some of our environments it might build any time.

What I did was to create the Jenkins Build widget for Dashing. and now I'll explain what it can be used for.

How did the last build/deploy go?

Build completed Build completed

Failed build Failed build

The two images shows us how the last build ended, the green one went OK, but the red one failed.

Is something building right now?

Build in progress Build in progress

When a build/deploy is in progress, the widget turns grey, and the meter will move towards 100% done. The progress percentage will never be 100% accurate, since it checks how long the last build took and assumes this build will take the same amount of time, but this happens very seldom.

If the build takes longer than the last build, it will never go to more than 99%. When it finished, it either goes to a nice green widget or a red, failing one.

Will a deploy/build soon begin?

In my project we use Jenkins for deployment to two of our dev-environments, meaning when someone pushes to the git repo, Jenkins will see the changes and start a maven build (with deployment to Nexus) When the deployment is finished it will start another Jenkins-job to deploy the code. Based on this we want to know if a deployment will happen in the near future, this is shown as a build in progress, but with a yellowish background, as shown in the image.

Prebuild in progress Prebuild in progress

Check out other widgets for Dashing here https://github.com/Shopify/dashing/wiki/Additional-Widgets