Shared GitHub Actions and CI workflows used across Strimzi repositories.
Actions for installing tools and setting up Kubernetes clusters.
| Action | Description | Key Inputs |
|---|---|---|
dependencies/install-docker |
Sets up Docker with QEMU and Buildx for multi-platform builds | — |
dependencies/setup-java |
Installs Java and Maven | javaVersion (21), mavenVersion (3.9.9), javaDistro (temurin) |
dependencies/install-helm |
Installs Helm and helm-unittest plugin | helmVersion (v3.20.0), helmUnitTestVersion (v1.0.3) |
dependencies/install-yq |
Installs yq YAML processor | version (v4.6.3), architecture (amd64) |
dependencies/install-shellcheck |
Installs ShellCheck linter | version (0.11.0), architecture (amd64) |
dependencies/install-syft |
Installs Syft SBOM generation tool | version (1.20.0), architecture (amd64) |
dependencies/install-ascii-doctor |
Installs Ascii Doctor tool | rubyVersion (3.2) |
dependencies/setup-kind |
Creates a Kind cluster with local registry and cloud-provider-kind | kindVersion (0.31.0), controlNodes (1), workerNodes (1), cloudProviderVersion (0.6.0) |
dependencies/setup-minikube |
Creates a Minikube cluster with local registry | minikubeVersion (v1.38.0), kubeVersion (v1.38.0) |
Actions for building, testing, and releasing Strimzi components.
| Action | Description | Key Inputs |
|---|---|---|
build/build-binaries |
Builds and tests Java binaries using Makefile targets | clusterOperatorBuild (false), mainBuild (true), artifactSuffix (binaries) |
build/build-containers |
Builds and archives container images | architecture (amd64), imagesDir (required), containerTag (latest) |
build/push-containers |
Pushes container images and creates multi-arch manifests | architectures (required), registryUser (required), registryPassword (required) |
build/load-containers |
Loads container images into Kind/Minikube registry | registry (required: minikube/kind/external) |
build/deploy-java |
Deploys Java artifacts to Maven Central | projects (required), settingsPath (required) |
build/release-artifacts |
Builds release artifacts using Makefile | releaseVersion (required), artifactSuffix (required) |
build/publish-helm-chart |
Publishes Helm Chart as OCI artifact | releaseVersion (required), helmChartName (required) |
Important
Build actions do not install their own dependencies (Java, yq, Helm, Docker, Shellcheck, Syft, etc.). Callers must install the required dependencies using the appropriate dependency actions before invoking a build action.
Important
The build-binaries action supports an clusterOperatorBuild input (default false) that enables Strimzi Kafka Operator specific build steps — Helm chart generation, CRD distribution, dashboard setup, documentation checks, and uncommitted changes verification.
Other repositories should leave this disabled.
Tests all dependency actions with version matrix combinations:
- Docker — Buildx multi-platform support verification
- Helm — version matrix, unittest plugin verification
- ShellCheck — version matrix, functional test
- Syft — version matrix
- yq — version matrix, functional test
- Java/Maven — Java 17/21 + Maven 3.9.9/3.8.8 matrix
- Kind — single/multi-node clusters, K8s version verification, registry access from inside cluster, node labels, cloud-provider-kind
- Minikube — version matrix with
latest, K8s version verification, registry access
End-to-end integration tests that run the full build pipeline (build binaries, deploy Java, build/push containers, release artifacts, publish Helm) against multiple Strimzi repositories:
- strimzi-kafka-operator (with
clusterOperatorBuild: true) - strimzi-kafka-bridge
- kafka-access-operator
- strimzi-mqtt-bridge
- drain-cleaner
- client-examples
Warning
The rest of Strimzi repositories are not compatible yet and will be added in the future.
Reference actions from another Strimzi repository:
- uses: strimzi/github-actions/.github/actions/dependencies/setup-kind@main
with:
controlNodes: 1
workerNodes: 3This project is licensed under the Apache License 2.0.