2017-11 Jenkins CI Pipeline for VTK

Over the Xmas break I kept myself busy beavering away on a Jenkins CI pipeline to automate building VTK.

VTK (Visualisation ToolKit) is an excellent library of code for processing and visualisaton of multi-dimensional datasets. It’s written in C++ for high performance, and comes with bindings for python, java, and tcl/tk. For more info, see the VTK website

This Jenkins pipeline and associated scripts accomplish several things:

    – clone/pull the latest version of VTK from the VTK GitLab repository
    – configure & build the new code, allowing you to specify various parameters
    – run the testsuite (currently 1300+ tests)
    – submit results to my personal VTK dashboard, which I’ve setup on Homunculoid: here

The jenkins-vtk-pipeline project is here, on GitHub

I’ve also got a VTK build pipeline going for Atlassian’s Bamboo CI server, but as that’s a commercial product, it’s probably of less use to others so I haven’t GitHub’ed it. It uses the same build-vtk-dashboard script which the Jenkins pipeline uses, so most of the work required for a Bamboo pipeline is here anyway.

Click on the thumbnails below to see screenshots of the main dashboard page, and of the Jenkins project – main project page, and build parameters.

In the dashboard screenshot, you can see 102 tests failed for the build which runs the testsuite on Mesa. This is to be expected as the Mesa used by my vncservers is lacking floating-point texture support. You can also see all tests passed for the builds which run the testsuite on an nvidia-backed display.

The dashboard gives excellent visibility into test results. You can bring up a list of failed tests, and view a report on any individual test – showing error messages, reference image, test result image, and a difference image. The VTK dashboard is a good thing 😉 I should probably do a separate page on what was required to setup the dashboard on Homunculoid.