Using the Zeebe Action for GitHub, you can automate your GitHub repo to deploy BPMN models to Camunda Cloud when you push to a specific branch.

In this quick tutorial, I show you how to configure your GitHub repo to deploy all BPMN models in the bpmn directory of your repo on a push to master.

If you don’t have a Camunda Cloud account yet, you can join the public beta to get one.

Zeebe Action

Create a client in Camunda Cloud

  • Go into your Zeebe cluster in the Camunda Cloud console, and create a new client. You might want to name it “GitHub-Automation” so you know what it is for.
  • Copy the “Connection Info” block by clicking the copy icon in the lower right-hand corner.
Connection Info

Configure Secret in your GitHub repo

  • In your GitHub repo, go to the repository settings Secrets configuration. Add a new Secret named ZEEBE_CLIENT_CONFIG and paste the Connection Info in there.

Create a GitHub workflow to deploy models

  • Create a file in your repo .github/workflows/deploy-bpmn-from-master.yml.
  • Paste the following content:
name: Deploy Workflows

      - master
      - 'bpmn/*'

    runs-on: ubuntu-latest

      - uses: actions/checkout@v2
      - name: Deploy Updated Workflows
        uses: jwulf/zeebe-action@master
          clientConfig: ${{ secrets.ZEEBE_CLIENT_CONFIG }}
          operation: deployWorkflow
          bpmnDirectory: bpmn
  • Commit the file.

That’s it!

That’s all you need to do. You now have automation in your GitHub repo to redeploy your BPMN models when they are updated on the master branch of your repo.

The paths filter ensures that the deployment happens when the push to master includes a change to at least one model.

Zeebe will only create new versions for the models that were changed since the last deployment, so although the Zeebe Action will send all models in the bpmn directory to Camunda Cloud, only the updated models will get new versions deployed.

What else is possible?

The Zeebe Action can start workflow instances in Camunda Cloud, and publish messages to Camunda Cloud – either to start a new workflow instance, or to be correlated with a running instance. For more ideas on what you can do with it, see the Zeebe Action README.

  • Orchestrating Cloud Events with Zeebe

    Disclaimer: This blog post is about Cloud-Native software, containers, Cloud Events, and Workflows. It describes a concrete example that you can run yourself using Kubernetes, Helm, and You should be familiar with Kubernetes and Helm to follow along and will learn about and on your way. While working with Kubernetes the chances are quite high that you’ll find services written in different languages and using different technologies stacks. CloudEvents ( / CNCF spec) was born to enable these systems to exchange information by describing their events in a standard way, no matter which transports these services are using (HTTP, Messaging AMPQ/JMS, Protobuf, etc).  In such scenarios, where you have events being produced and consumed by different systems, there are common requirements that start to arise when...

    Read more
  • From Project to Program: Building your Rockstar...

    How to create a rockstar project team by playing to individual strengths, and fostering internal collaboration

    Read more
  • From Project to Program: Establishing a Center...

    How can you move beyond your first Camunda project and automate hundreds of processes successfully using an agile step-by-step approach? For the last 10 years we’ve been helping businesses to automate workflow processes, migrating from monolithic systems into agile, scalable ways of working. And we’ve discovered that you don’t have to start with a big bang approach – in fact, starting small is the fastest and most effective route to digital transformation. You can catch up on the previous blogs in the series, if you’d like more background before diving straight into this blog, where we’ll look at how to establish and run a Center of Excellence, manage architectural decisions and manage perceptions around your projects. Scaling Camunda Adoption in...

    Read more