- Maven
- Docker
- Onboarding your repository
- Maven
- Docker
- Integrating GitHub Actions with Zeebe on Camunda 8
- Troubleshooting
In order to build and release your Maven projects properly, you need to prepare:
- Onboard your repository (which makes sure you will have all necessary credentials available)
- Use the release parent pom in your Maven project (which will take care of distribution management)
- Setup a GitHub workflow leveraging the Community Hub Maven Release GitHub Action (which will take care to do the proper releases).
Then you can simply create GitHub releases, which will also trigger all necessary Maven magic to deploy to
- Camunda Artifactory
- Sonatype (aka Maven Central)
View an example repository demonstrating the setup of Maven Build Management and CI/CD here.
More information below.
In order to build and release Docker images, you need to prepare:
- Onboard your repository (which makes sure you will have all necessary credentials available)
- Use the image name
camundacommunityhub/*
- Setup a GitHub workflow to push your Docker images to Dockerhub. We recommend using the official Docker login GitHub Action.
More information below.
You need to register your repository by opening a pull request in the Camunda Infrastructure repo and follow the instructions listed for onboarding a new repository.
View an example repository demonstrating the setup of Maven Build Management and CI/CD here.
The Camunda Community Hub decided on a unified groupId. Use a Maven groupId based on: org.camunda.community
, so for example: org.camunda.community.awesomeextension
Any project needs to use the community-hub-release-parent in their POM:
<parent>
<groupId>org.camunda.community</groupId>
<artifactId>community-hub-release-parent</artifactId>
<version>1.4.3</version>
<relativePath />
</parent>
This parent POM contains all necessary settings for the GitHub action to function properly.
Add a GitHub workflow (e.g. by adding a file .github/workflows/deploy.yaml
to your) to your project as described here.
Create a new Release using https://github.com/camunda-community-hub/:repo/releases/new (replace :repo
with name of repository).
This will trigger the release flow, which uses mvn release:prepare release:perform
to build, sign, and deploy the released version to Maven Central, and will push the generated tags once the process has completed.
There are two options:
- Use the auto release property in your GitHub workflow (recommended), so that all releases will be automatically be released to Maven Central:
...
- name: Deploy SNAPSHOT / Release
uses: camunda-community-hub/community-action-maven-release@v1
with:
...
maven-auto-release-after-close: true
...
community-hub-release-parent
with version 1.4.1
. Source.
- Open an issue to let @camunda-community-hub/devrel review and release your artifact. Therefore, open a new issue in your repository and include @camunda-community-hub/devrel in a comment with a waiting-for-camunda issue label applied.
After an artifact has been released, it can take up to an hour to be retrievable, and 2-3 hours for it to be reflected on the public page of the artifact.
[TBD]
Integration tests should be versioned when preparing a release, but should never be deployed to Maven Central. If you have an integration-tests module in your project, add the following profile to your parent POM:
<profiles>
<profile>
<id>it</id>
<activation>
<property>
<name>performRelease</name>
<value>!true</value>
</property>
</activation>
<modules>
<module>integration-test</module>
</modules>
</profile>
</profiles>
This will ensure that when the mvn release:perform
is triggered (with the -DperformRelease
flag set) the integration-tests
module is skipped.
Verify that you have adjusted your extension's release workflow GPG files to match the example shown in the Community Action Maven Release documentation. For more information on Java setup actions and what GPG does, review the documentation on GitHub.
If you are interested in working with GitHub Actions using Zeebe on Camunda 8, visit our Camunda 8 GitHub Action repository to get started.
- If you are facing any issues regarding your extension's release process, please open an issue and assign it to @camunda-community-hub/devrel with applicable issue labels applied.
- If you see an update or improvement that can be made to the release process in the Camunda Community Hub, we encourage you to submit an issue with your request, and thank you for your suggestion!
- Please make use of the Camunda Community Hub Pull Request Template when opening a troubleshooting pull request and include as much information as possible in order to help reviewers better understand the issue you are facing.