After migrating existing CI workflows of multiple teams to the monorepo there is some redundancy across GHA workflow code. Due to similarities in tech stack all team's CIs have code to set up Java+Maven, build, run tests and create artifacts like Docker images. This can be seen in https://github.com/camunda/camunda/tree/main/.github/actions where several redundant GHA exists like build-operate-docker, build-tasklist-docker, build-zeebe-docker or collect-test-artifacts, collect-operate-test-artifacts, collect-tasklist-test-artifacts.
Goal: solve common tasks in CI with the same code without redundancies.
Description
After migrating existing CI workflows of multiple teams to the monorepo there is some redundancy across GHA workflow code. Due to similarities in tech stack all team's CIs have code to set up Java+Maven, build, run tests and create artifacts like Docker images. This can be seen in https://github.com/camunda/camunda/tree/main/.github/actions where several redundant GHA exists like
build-operate-docker
,build-tasklist-docker
,build-zeebe-docker
orcollect-test-artifacts
,collect-operate-test-artifacts
,collect-tasklist-test-artifacts
.Goal: solve common tasks in CI with the same code without redundancies.
This can be achieved by unifying redundant code from e.g. https://github.com/camunda/camunda/tree/main/.github/actions in to single parameterized reusable actions that are used by all teams afterward: