Raspberry Pi Jenkins Monitor

Behind my desk at work I have a display on which I keep an eye on one of our Jenkins environments.   I initially set this up using a spare Win 7 PC, running a hacked open source screen saver that would load a url into a .net web control.     That worked fine, but I wanted to get rid of the PC that gets no use other than displaying my web page, so I turned to my RPi.

In my research, I found there are several approaches for this.   But most of them boil down to either Midori or Chromium.    I took the Chromium route.

First, about the Jenkins page I use for this.   What I’m looking for is queue length, status of agents and executors, and status of recent builds.   With that goal, I’m not using one of the radiator plugins, I’m just loading build history on the All tab: http://<jenkins address:port>/view/All/builds?auto_refresh=true.

Note: The auto refresh parameter at the end enables Jenkins auto refresh so that you don’t have to plug in a mouse to click the Enable Auto Refresh link on the page.   Thanks to my brilliant team for deciphering that secret code.

Basic set up was easy:

  • Latest Raspian image (using Noobs)
  • Do the steps in lokir’s blog, using the appropriate URL (above)
  • Optional: add –enable-offline-auto-reload  to the chromium command to reload in the case the page goes down (not sure this does what we think it will do)
  • For power, I just plugged USB into the monitor’s USB port, so there is no separate power supply required for the RPi, which is nice

That got me going.    But the display behind my desk is in portrait mode, so that I can see most of the Jenkins agents to keep an eye on them.    So I needed to flip the display.

ZenTsang’s post here (scroll to the bottom) is the way I got this working in portrait mode.   No re-compiling, just give the GPU a little more RAM, and plug

display_rotate=3

into the config.txt file.

And viola, I have a RPi Jenkins display!

JenkinsRPi

The next challenge, for anything that doesn’t auto-refresh, would be to make the page reload occasionally or on a trigger, but Jenkins makes this easy with the Enable Auto Refresh link.

It’s a heavy page, but the RPi is keeping up.  It’s been running for 24 hours so far without issue, so I think we’re good to go.   If you want to do something similar, it’s not too tough, even for a Windows guy like me.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *