Skip to content

Add retries to download commands in installers scripts and always checks versions to ensure it is working #172

Add retries to download commands in installers scripts and always checks versions to ensure it is working

Add retries to download commands in installers scripts and always checks versions to ensure it is working #172

name: Integration tests
on:
pull_request:
branches:
- "*"
push:
branches:
- "main"
- "release-*"
# Declare default permissions as read only
permissions:
contents: read
id-token: write # Required for OIDC keyless signing
attestations: write # Required for actions/attest provenance
# Cancel previous builds on the same branch/PR
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-integration:
name: Integration Test - ${{ matrix.project.repo }}
strategy:
fail-fast: false
matrix:
project:
# Strimzi Operator - Full pipeline with containers and Helm
- repo: "strimzi/strimzi-kafka-operator"
# There was problem with prometheus download urls which was fixed in main and will be part of 1.2.x
ref: "main"
artifactSuffix: "operators"
architecture: "amd64"
buildContainers: true
modules: "./,crd-annotations,crd-generator,test,api"
nexusCheck: "strimzi"
javaVersion: "21"
helmChartName: "strimzi-kafka-operator-helm-3-chart"
releaseVersion: "6.6.6"
imagesLocation: "./docker-images/container-archives"
clusterOperatorBuild: true
skipTests: true
checkTests: false
# Kafka Bridge - Full pipeline with containers
- repo: "strimzi/strimzi-kafka-bridge"
ref: "release-1.0.x"
artifactSuffix: "kafka-bridge"
architecture: "amd64"
buildContainers: true
modules: "./"
nexusCheck: "kafka-bridge"
javaVersion: "21"
helmChartName: "none"
releaseVersion: "6.6.6-rc1"
imagesLocation: "kafka-bridge-amd64.tar.gz"
skipTests: false
checkTests: true
# Access Operator - Full pipeline with containers
- repo: "strimzi/kafka-access-operator"
ref: "release-0.3.x"
artifactSuffix: "access-operator"
architecture: "amd64"
buildContainers: true
modules: "./,api"
nexusCheck: "kafka-access-operator"
javaVersion: "21"
helmChartName: "strimzi-access-operator-helm-3-chart"
releaseVersion: "6.6.6"
imagesLocation: "access-operator-container-amd64.tar.gz"
skipTests: false
checkTests: true
# MQTT Bridge - Full pipeline with containers
- repo: "strimzi/strimzi-mqtt-bridge"
ref: "main"
artifactSuffix: "mqtt-bridge"
architecture: "amd64"
buildContainers: true
modules: "none"
nexusCheck: "none"
javaVersion: "21"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "mqtt-bridge-amd64.tar.gz"
skipTests: false
checkTests: true
# Drain Cleaner - Full pipeline with containers and Helm
- repo: "strimzi/drain-cleaner"
ref: "1.6.1"
artifactSuffix: "drain-cleaner"
architecture: "amd64"
buildContainers: true
modules: "none"
nexusCheck: "none"
javaVersion: "21"
helmChartName: "strimzi-drain-cleaner-helm-3-chart"
releaseVersion: "6.6.6"
imagesLocation: "drain-cleaner-container-amd64.tar.gz"
skipTests: false
checkTests: true
# Client Examples - Containers only (no Maven deploy, no tests)
- repo: "strimzi/client-examples"
ref: "main"
artifactSuffix: "client-examples"
architecture: "amd64"
buildContainers: true
modules: "none"
nexusCheck: "none"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "none"
imagesLocation: "*-amd64.tar.gz"
skipTests: false
checkTests: false
# Test Clients - Containers only (no Maven deploy)
- repo: "strimzi/test-clients"
ref: "release-0.14.x"
artifactSuffix: "test-clients"
architecture: "amd64"
buildContainers: true
modules: "none"
nexusCheck: "none"
javaVersion: "21"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "./docker-images/container-archives"
skipTests: false
checkTests: true
# Metrics Reporter - Java only (no containers)
- repo: "strimzi/metrics-reporter"
ref: "main"
artifactSuffix: "metrics-reporter"
architecture: "amd64"
buildContainers: false
modules: "./"
nexusCheck: "metrics-reporter"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
# Kafka Quotas Plugin - Java only (no containers)
- repo: "strimzi/kafka-quotas-plugin"
ref: "main"
artifactSuffix: "kafka-quotas-plugin"
architecture: "amd64"
buildContainers: false
modules: "./"
nexusCheck: "kafka-quotas-plugin"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
# Kafka Kubernetes Config Provider - Java only (no containers)
- repo: "strimzi/kafka-kubernetes-config-provider"
ref: "main"
artifactSuffix: "kafka-kubernetes-config-provider"
architecture: "amd64"
buildContainers: false
modules: "./"
nexusCheck: "kafka-kubernetes-config-provider"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
# Kafka OAuth - Java only (no containers)
- repo: "strimzi/strimzi-kafka-oauth"
ref: "main"
artifactSuffix: "kafka-oauth"
architecture: "amd64"
buildContainers: false
modules: "!examples/producer','!examples/consumer"
nexusCheck: "kafka-oauth-common"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
# Test Container - Java only (no containers)
- repo: "strimzi/test-container"
ref: "release-0.116.x"
artifactSuffix: "strimzi-test-container"
architecture: "amd64"
buildContainers: false
modules: "./"
nexusCheck: "strimzi-test-container"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
# Test Connectors - Java only (no containers)
- repo: "strimzi/test-connectors"
ref: "release-0.1.x"
artifactSuffix: "strimzi-test-connectors"
architecture: "amd64"
buildContainers: false
modules: "./,fault-injection-source-connector"
nexusCheck: "fault-injection-source-connector"
javaVersion: "17"
helmChartName: "none"
releaseVersion: "6.6.6"
imagesLocation: "none"
skipTests: false
checkTests: true
uses: ./.github/workflows/reusable-test-integrations.yml
with:
repo: ${{ matrix.project.repo }}
ref: ${{ matrix.project.ref }}
architecture: ${{ matrix.project.architecture }}
artifactSuffix: ${{ matrix.project.artifactSuffix }}
buildContainers: ${{ matrix.project.buildContainers }}
modules: ${{ matrix.project.modules }}
nexusCheck: ${{ matrix.project.nexusCheck }}
javaVersion: ${{ matrix.project.javaVersion }}
helmChartName: ${{ matrix.project.helmChartName }}
releaseVersion: ${{ matrix.project.releaseVersion }}
imagesLocation: ${{ matrix.project.imagesLocation }}
clusterOperatorBuild: ${{ matrix.project.clusterOperatorBuild || false }}
skipTests: ${{ matrix.project.skipTests }}
checkTests: ${{ matrix.project.checkTests }}
secrets: inherit