Jenkins Output Navigator – Hackday Project

Hackday

The theme for the hackday VII was “Simplify and Scale”.
My colleague Daniel Owen and I decided to produce something to simplify our lives as QAs at Caplin. Andy Berry was also on hand and kind enough to lend us some of his expertise for our project.

The problem

infinite_scrolling_thumb

QAs and Developers spend a considerable amount of time scanning logs, especially build system output generated (e.g. Jenkins) as well as navigating between Jenkins and source control etc. Indeed, QAs and Devs investigate logs when a build is failing and navigating around built output and searching for key words can get tiresome.

We decided to break up these tasks and see how we can resolve that.

Aim

Save man time for a task a machine can do.

Proposed Solution

summary
buttons

A good starting point would be to have a summary on the top of the logs, resuming all information needed: failing test suites, number of failing tests, failure path, and why not a suggestion.

With that summary, QAs or Devs don’t need to scan around to get a brief idea of what’s wrong.

We also thought that it will save a lot of time if a navigator were created to jump straight to the useful information.

To create this solution, we decided to use Tampermonkey. It is a browser extension that anyone can download for Chrome, Safari or Opera. It allows to inject additional JavaScript into web pages load in the browser, adding features, removing features.

We created a script that will be run any time the configured page is opened.
Pictured below is the navigator which appears in the corner of the page, the buttons are what we thought would be the most useful:

The navigator is a floating window that will follow the user scroll to enable him to click another button whenever he wants.

Results (team’s point of view)

We struggled a bit with the Tampermonkey script which had to mix the javascript and CSS, but in the end we got the job done with time to spare to hoover up any leftover pizza.

As a conclusion, this is an absolutely amazing feature that we will use every day!

Leave a Reply

Your e-mail address will not be published. Required fields are marked *