Jenkins is the way to get there safe and on time

HIS: Human Machine Interface for Integrated Systems

Submitted By Jenkins User Mircea Banu
Romania-based railway signaling company used Jenkins to cut release times by two-thirds.
Organization: https://www.thalesgroup.com/en/europe/germany/transportation-germany-safejourney[Thales Group]
Industries: Railway Signalling / Transportation
Programming Languages: Java, Python
Version Control Systems: Bitbucket Server, Subversion
Community Support: Spoke with colleagues and peers

All aboard for accurate railway signaling and signage made faster with Jenkins automation.

Background: Countries, cities, and transport operators rely on Thales' ground transportation solutions to adapt to rapid urbanization, meet new mobility demands, and support digitalization on all levels. Our expertise in signaling, communications, fare collection, and cybersecurity gives people and goods the connected journey they need to move safely and efficiently. For this project, we had two crucial demands that needed automation: 

  • fast time to market by reducing the time needed to create a new release through

  • automating tests automating code quality checks that are required by the applied safety standards

Goals: The project is realizing a safe command & control UI for railways. The goal is to have the UI configurable fast for customers with different requirements and needs.

"Jenkins gave us a powerful tool to visualize our builds and code checks. It really boosted our stamina. Fun fact: A colleague "accidentally" activated the ChuckNorris plugin and it stayed there for an entire year boosting the fun with a "yes, we can" attitude."
image— Mircea Banu, Software Engineer, Thales Group

Solution & Results:  We had a multi-tiered approach to reduce time and improve QA.

For reducing release time 

  • Even just for a small feature, our biggest time consumer in a release is to execute all product tests. This is mandatory in our safety environment. We have automated most of our UI tests for all customers using Squish, Python, and Java which are integrated into the CI in Jenkins 

For performing code quality checks 

  • We’ve integrated FindBugs, Chekstyle, and Jacoco in the Jenkins build. We have quality gates in place that make it impossible for an error to be ignored.

For visualizing code quality reports, we’ve used the following plugins:

  • Build Monitor View

  • FindBugs

  • Checkstyle

  • DRY

  • JaCoCo

  • Test Results Analyzer 

For our automation environment, we are using plugins such as:

  • Xvfb

  • Squish Jenkins

Here are our results:

  • Release time reduced to a third

  • Increased code quality

  • We are able to quickly find out when a generic feature breaks one of the customer’s configurations