Jenkins is the way to automate and improve

World’s Leading Automakers Rely on CI and Testing with Jenkins

Submitted By Jenkins User Andreas Schwarzkopf
his consultant opted to build a unique Jenkins instance to support the creation of an in-vehicle infotainment system.
Organization: Global leader creating unique in-vehicle experiences.
Industries: Automotive
Programming Languages: C/C++, Python
Community Support: Jenkins.io websites & blogs, spoke with colleagues and peers

Improving CI/CD to help transform how a car feels, responds and learns.

Background: As a global industry leader in creating unique, moving experiences for the automotive world, the consulting firm that Andreas Schwarzko works for helps the world’s leading automakers transform how a car feels, responds and learns. But as the world of connected cars, autonomous driving and e-vehicles started to catch up to them, they realized they needed to upgrade their development process. Andreas and team were coming from an old Jenkins server that did not give developers and engineers a lot of freedom, like access to new plugins or new plugin versions. That meant no pipelines, inadequate visualization, etc. Furthermore, end-to-end tests exceeded the master-only Jenkins system and made it impossible to run jobs in a timely manner. To stay current and meet the increasing demands of their automotive customers, something had to change.

Goals: Speedy creation of a speech dialog system for an in-vehicle infotainment system.

"Jenkins is our way of reliable and faster releases. We can do everything we want with it."
image— Andreas Schwarzkopf, Integration and Test Engineer

Solution & Results: 

When a recent customer asked the firm to create a unique speech dialog system, Andreas knew he would have to introduce automated releases in order to present proposed changes earlier and faster than was currently the norm.

"Our first solution was to create our own, new Jenkins instance," said Andreas. "This allowed us to apply changes freely, without breaking other projects."

"We started using Jenkins pipelines and Jenkinsfiles to store our configuration with our source code," he added. "After reviewing what else we could include, we added two more build stages that were previously done manually."

Using Jenkins nodes, these parallel stages enabled the development team to halve the end-to-end testing time. Later on, after adding more resources, they were able to scale it down to a tenth of the initial end-to-end testing time.

"We are saving hours of manual work by automating everything Jenkins. We used more and more Jenkins plugins and several additional steps to the automated build and release process," said Andreas. "We’re not only building our software with Jenkins. We use it to automate all of our utilities, configurations, and more. It is a real game-changer for us."

Results:

  • faster feedback 

  • faster build time 

  • more tests in less time 

  • reliable and fast releases