Background: Camunda is a global software company that offers a complete process automation tech stack with powerful execution engines for BPMN workflows and DMN decisions paired with essential modeling, operations, and analytics applications. While the Camunda Platform has multiple teams and products, this project is specific to the Camunda Platform. In the past, we were using homemade templating based on Jenkins DSL Freestyle jobs which work in upstream/downstream style. We decided to take advantage of Jenkins to build a CI/CD that stood up to our unique requirements detailed below.
Complex/advanced use case:
Camunda Platform is an open source, enterprise project with a complex CI where the core engine works with:
What helped us a lot is Jenkins' extensibility, using Jenkins plugins and shared libraries; Jenkins is more like a framework to develop CI/CD that can fit any use case
Also, the CI setup needs to support 6 previous versions of the core engine. That's translated to around 400 jobs per single Camunda Platform version.
Super high learning curve:
Managing costs and build time:
Miscellaneous Items:
Goal: Developer enablement and enhancing CI experience.
Solution & Results:
The following steps are what we did to address our varied requirements:
Complex/advanced use case:
Super high learning curve:
Managing costs and build time:
Miscellaneous Items:
The key capabilities we relied on were:
Here is the final result of one of the Jenkins files:
More importantly, here were the results experienced by the team: