Currently, the monorepo includes the CI pipelines of Zeebe, Operate and Tasklist side-by-side. They are not integrated and as noted in #17231 the path filters are lengthy, redundantly defined and not applicable to the merge queue. In the end we run CI pipelines of Zeebe, Operate and Tasklist more often than we need and also on unrelated changes, partly because there is no single entry point so using GitHub required status checks makes this duplication necessary. This has a few downsides:
higher cost (large parts of the CI run on infrastructure that Camunda pays by use)
less stability due to inherent flakiness (running unrelated flaky tests may fail the whole pipeline)
confusing UI with 20+ very detailed and partially redundant status checks
cumbersome configuration of GitHub required status checks
We can get some inspiration from the Console monorepo workflows where Clément recently established a more efficient and modular CI pipeline structure using change detection and conditional execution.
The scope of this Epic is to provide a foundation for unifying the existing CI pipelines running on code changes to have a single entry point and only running pipelines relevant for a change. More details in the planning doc.
Out of scope: scheduled/nightly pipelines, release workflows
Introduction
Currently, the monorepo includes the CI pipelines of Zeebe, Operate and Tasklist side-by-side. They are not integrated and as noted in #17231 the path filters are lengthy, redundantly defined and not applicable to the merge queue. In the end we run CI pipelines of Zeebe, Operate and Tasklist more often than we need and also on unrelated changes, partly because there is no single entry point so using GitHub required status checks makes this duplication necessary. This has a few downsides:
We can get some inspiration from the Console monorepo workflows where Clément recently established a more efficient and modular CI pipeline structure using change detection and conditional execution.
The scope of this Epic is to provide a foundation for unifying the existing CI pipelines running on code changes to have a single entry point and only running pipelines relevant for a change. More details in the planning doc.
Out of scope: scheduled/nightly pipelines, release workflows
Task Breakdown
✔️ Phase 1:
camunda/camunda
camunda/camunda
push
,pull_request
andmerge_group
triggerscamunda/camunda
✔️ Phase 2:
✔️ Phase 3:
camunda/camunda
🚧 Phase 4: