Recommendation for use of CI/CD pipeline to deploy BPMN, DMN diagram & worker

Hello Team,

Looking for some recommendation on how to use CI/CD pipeline to deploy BPMN, DMN diagram on self-managed Camunda 8 instance deployed on on-prem/AWS kubernetes cluster.
Some specifics details need like,

1. How should be deployment for BPMN files & workers should be ? Should be part of single pipeline for deployment or should be different ?
2. As we need to deploy BPMN files to Camunda platform, do we need to use specific APIs/Command for this ?
3. Any other recommendation /best practices 

Also if you can provide some online documentation, video, other resources if you have.


Hi @nirav,

I would deploy the files from spring-zeebe worker as described here: GitHub - camunda-community-hub/spring-zeebe: Easily use the Zeebe Java Client in your Spring or Spring Boot projects

Hope this helps, Ingo

thanks @Ingo_Richtsmeier for response, will go through link you have provided, one thing i have forgot to mention in post is our application we are building is on .net core so not sure if link you have provided would work in our scenario.

Basically for all over existing service(non Camunda related), we have Jenkins CI/CD pipeline so wanted to understand how we should we deploy for new Camunda worker process and BPMN, DMN diagram using same Jenkins pipeline

Hello @Ingo_Richtsmeier,

I have gone through url you have provided. Just to confirm, here suggestion is to have BPMN,DMN files with same solution where we have workers & deploy them with workers code only, please confrim.

Below I have provided some screenshot on how we are deploying currently on our POC project, does this look correct approach ?

Hi @nirav,

I’m not a .net developer, but from my basic understanding, you are deploying the BPMN file once you start the worker. That’s the way to go.

SpringZeebe hides the code behind some fancy annotations.

Hope this helps, Ingo

1 Like

thanks @Ingo_Richtsmeier, this helps.

You can also use a script and zbctl to deploy BPMN and DMN in a Jenkins pipeline.

thanks @jwulf for suggesting other options.

We have use zbctl from command line to deploy BPMN, DMN on local Camunda self-managed instance so bit aware of that… not aware about script you have mentioned above, can you proivde more details on that or redirect me to some documetns around that ? do you have any sample Jenkins pipeline which uses script and zbctl to deploy BPMN, DMN ?

Hello @jwulf,

Gone through this to deploy process files to Camunda using API, Is it still applicable for Camunda 8 as well ? Also if you can provide some more details around other ways to deploy files as mentioned on above comments…


Camunda Platform 8 does not have a REST API for deployment. You need to use the gRPC API.

zbctl is a CLI that can do deployment. You can script that. See the docs for more details: CLI client | Camunda Platform 8.

I don’t know how you script this in Jenkins Pipelines. It’s crazy how much it has changed since I last used Jenkins.

I used to create BASH scripts that would run as Jenkins jobs, and you could install zbctl on the machine and just call that.

With Jenkins Pipelines, it looks like you write a Groovy Script. Maybe someone else is using it and can give more details.