camunda / camunda

Process Orchestration Framework
https://camunda.com/platform/
3.22k stars 587 forks source link

[EPIC] Only run relevant CI for each change #17721

Open cmur2 opened 4 months ago

cmur2 commented 4 months ago

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:

✔️ Phase 2:

✔️ Phase 3:

🚧 Phase 4:

Zelldon commented 2 months ago

I created a follow-up https://github.com/camunda/camunda/issues/19539 to further investigate and improve related to further improve when to run which tests etc.