From 0df7a4f88b696618b1700d1628bcaf43f5bab32c Mon Sep 17 00:00:00 2001 From: Lan Yao Date: Mon, 26 Jan 2026 13:00:04 -0800 Subject: [PATCH 1/5] test emulation --- .semaphore/cp_dockerfile_build.yml | 217 ++++++++++++++++++++++++++++- .semaphore/semaphore.yml | 40 ++++++ base-java-micro/pom.xml | 5 + base-java/pom.xml | 5 + base-lite/pom.xml | 5 + base/pom.xml | 5 + pom.xml | 2 + 7 files changed, 274 insertions(+), 5 deletions(-) diff --git a/.semaphore/cp_dockerfile_build.yml b/.semaphore/cp_dockerfile_build.yml index 40c15a834e..2ed8c40a37 100644 --- a/.semaphore/cp_dockerfile_build.yml +++ b/.semaphore/cp_dockerfile_build.yml @@ -106,6 +106,7 @@ global_job_config: - export DOCKER_DEV_TAG="dev-$BRANCH_TAG-$BUILD_NUMBER" - export AMD_ARCH=.amd64 - export ARM_ARCH=.arm64 + - export S390X_ARCH=.s390x blocks: - name: Validation dependencies: [] @@ -491,9 +492,214 @@ blocks: - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$ARM_ARCH - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - name: Build & Test S390X + dependencies: ["Validation"] + run: + # don't run the tests on non-functional changes... + when: "change_in('/', {exclude: ['/.deployed-versions/', '.github/', 'service.yml', 'README.md'], default_branch: 'master'})" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Build & Test ubi9 + commands: + # Setup QEMU for s390x emulation + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - docker buildx create --name s390x-builder --use || docker buildx use s390x-builder + - docker buildx inspect --bootstrap + # Make buildx the default builder so 'docker build' uses buildx + - docker buildx install + # Set default platform for all docker commands + - export DOCKER_DEFAULT_PLATFORM=linux/s390x + - export OS_TAG="-ubi9" + - export DOCKER_DEV_FULL_IMAGES=$DOCKER_DEV_REGISTRY${DOCKER_REPOS// /:$DOCKER_DEV_TAG$OS_TAG $DOCKER_DEV_REGISTRY}:$DOCKER_DEV_TAG$OS_TAG + - export S390X_DOCKER_DEV_FULL_IMAGES=${DOCKER_DEV_FULL_IMAGES// /$S390X_ARCH }$S390X_ARCH + - export OS_PACKAGES_URL=$(echo "$PACKAGES_URL" | sed "s/PACKAGE_TYPE/rpm/g") + - export PACKAGING_BUILD_ARGS="$PACKAGING_BUILD_ARGS -DCONFLUENT_PACKAGES_REPO=$OS_PACKAGES_URL" + - ci-tools ci-update-version + - mvn -Dmaven.wagon.http.retryHandler.count=3 --batch-mode -P jenkins,docker clean install dependency:analyze validate -U -Ddocker.registry=$DOCKER_DEV_REGISTRY + -Ddocker.upstream-registry=$DOCKER_UPSTREAM_REGISTRY -DBUILD_NUMBER=$BUILD_NUMBER -DGIT_COMMIT=$GIT_COMMIT -Ddocker.tag=$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS + - . cache-maven store + # Verify images are built for s390x architecture + - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Checking architecture of $image:" && docker inspect --format='{{.Architecture}}' $image; done + - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Pushing $image" && docker push $image; done + epilogue: + always: + commands: + - . publish-test-results + - artifact push workflow target/test-results + - artifact push workflow target --destination target-S390X + - name: Deploy S390X confluentinc/cp-base-java + dependencies: ["Build & Test S390X"] + run: + when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Deploy S390X confluentinc/cp-base-java ubi9 + env_vars: + - name: DOCKER_IMAGE + value: confluentinc/cp-base-java + commands: + - export OS_TAG="-ubi9" + - export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-base-java + - export GIT_COMMIT_TAG=$GIT_COMMIT$OS_TAG$S390X_ARCH + - export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG$S390X_ARCH + - export DEV_IMAGE_FULL=${DOCKER_DEV_REGISTRY}confluentinc/cp-base-java:$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + - docker pull $DEV_IMAGE_FULL + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - docker push $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker push $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - sign-images $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - sign-images $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$PACKAGE_TAG + - docker push $PROD_IMAGE_NAME:$PACKAGE_TAG + - sign-images $PROD_IMAGE_NAME:$PACKAGE_TAG + - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - name: Deploy S390X confluentinc/cp-base-java-micro + dependencies: ["Build & Test S390X"] + run: + when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Deploy S390X confluentinc/cp-base-java-micro ubi9 + env_vars: + - name: DOCKER_IMAGE + value: confluentinc/cp-base-java-micro + commands: + - export OS_TAG="-ubi9" + - export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-base-java-micro + - export GIT_COMMIT_TAG=$GIT_COMMIT$OS_TAG$S390X_ARCH + - export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG$S390X_ARCH + - export DEV_IMAGE_FULL=${DOCKER_DEV_REGISTRY}confluentinc/cp-base-java-micro:$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + - docker pull $DEV_IMAGE_FULL + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - docker push $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker push $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - sign-images $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - sign-images $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$PACKAGE_TAG + - docker push $PROD_IMAGE_NAME:$PACKAGE_TAG + - sign-images $PROD_IMAGE_NAME:$PACKAGE_TAG + - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - name: Deploy S390X confluentinc/cp-base-new + dependencies: ["Build & Test S390X"] + run: + when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Deploy S390X confluentinc/cp-base-new ubi9 + env_vars: + - name: DOCKER_IMAGE + value: confluentinc/cp-base-new + commands: + - export OS_TAG="-ubi9" + - export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-base-new + - export GIT_COMMIT_TAG=$GIT_COMMIT$OS_TAG$S390X_ARCH + - export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG$S390X_ARCH + - export DEV_IMAGE_FULL=${DOCKER_DEV_REGISTRY}confluentinc/cp-base-new:$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + - docker pull $DEV_IMAGE_FULL + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - docker push $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker push $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - sign-images $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - sign-images $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$PACKAGE_TAG + - docker push $PROD_IMAGE_NAME:$PACKAGE_TAG + - sign-images $PROD_IMAGE_NAME:$PACKAGE_TAG + - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - name: Deploy S390X confluentinc/cp-base-lite + dependencies: ["Build & Test S390X"] + run: + when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Deploy S390X confluentinc/cp-base-lite ubi9 + env_vars: + - name: DOCKER_IMAGE + value: confluentinc/cp-base-lite + commands: + - export OS_TAG="-ubi9" + - export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-base-lite + - export GIT_COMMIT_TAG=$GIT_COMMIT$OS_TAG$S390X_ARCH + - export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG$S390X_ARCH + - export DEV_IMAGE_FULL=${DOCKER_DEV_REGISTRY}confluentinc/cp-base-lite:$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + - docker pull $DEV_IMAGE_FULL + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - docker push $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker push $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - sign-images $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - sign-images $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$PACKAGE_TAG + - docker push $PROD_IMAGE_NAME:$PACKAGE_TAG + - sign-images $PROD_IMAGE_NAME:$PACKAGE_TAG + - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - name: Deploy S390X confluentinc/cp-jmxterm + dependencies: ["Build & Test S390X"] + run: + when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Deploy S390X confluentinc/cp-jmxterm ubi9 + env_vars: + - name: DOCKER_IMAGE + value: confluentinc/cp-jmxterm + commands: + - export OS_TAG="-ubi9" + - export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-jmxterm + - export GIT_COMMIT_TAG=$GIT_COMMIT$OS_TAG$S390X_ARCH + - export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG$S390X_ARCH + - export DEV_IMAGE_FULL=${DOCKER_DEV_REGISTRY}confluentinc/cp-jmxterm:$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + - docker pull $DEV_IMAGE_FULL + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - docker push $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - docker push $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - sign-images $PROD_IMAGE_NAME:$GIT_COMMIT_TAG + - sign-images $PROD_IMAGE_NAME:$BRANCH_BUILD_TAG + - export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$PACKAGE_TAG + - docker push $PROD_IMAGE_NAME:$PACKAGE_TAG + - sign-images $PROD_IMAGE_NAME:$PACKAGE_TAG + - export LATEST_PUSH_TAG=$LATEST_TAG$OS_TAG$S390X_ARCH + - docker tag $DEV_IMAGE_FULL $PROD_IMAGE_NAME:$LATEST_PUSH_TAG + - docker push $PROD_IMAGE_NAME:$LATEST_PUSH_TAG - name: Create Manifest and Maven Deploy dependencies: ["Deploy AMD confluentinc/cp-base-java", "Deploy AMD confluentinc/cp-base-java-micro", "Deploy AMD confluentinc/cp-base-new", "Deploy AMD confluentinc/cp-base-lite", "Deploy AMD confluentinc/cp-jmxterm", - "Deploy ARM confluentinc/cp-base-java", "Deploy ARM confluentinc/cp-base-java-micro", "Deploy ARM confluentinc/cp-base-new", "Deploy ARM confluentinc/cp-base-lite", "Deploy ARM confluentinc/cp-jmxterm"] + "Deploy ARM confluentinc/cp-base-java", "Deploy ARM confluentinc/cp-base-java-micro", "Deploy ARM confluentinc/cp-base-new", "Deploy ARM confluentinc/cp-base-lite", "Deploy ARM confluentinc/cp-jmxterm", + "Deploy S390X confluentinc/cp-base-java", "Deploy S390X confluentinc/cp-base-java-micro", "Deploy S390X confluentinc/cp-base-new", "Deploy S390X confluentinc/cp-base-lite", "Deploy S390X confluentinc/cp-jmxterm"] run: when: "branch = 'master' or branch =~ '^[0-9]+\\.[0-9]+\\.x$' or branch =~ '^[0-9]+\\.[0-9]+\\.[0-9]+(-cp[0-9]+)?(-rc[0-9]+)?$'" task: @@ -513,20 +719,20 @@ blocks: do export OS_TAG="-ubi9" export GIT_TAG=$GIT_COMMIT$OS_TAG - docker manifest create $image:$GIT_TAG $image:$GIT_TAG$AMD_ARCH $image:$GIT_TAG$ARM_ARCH + docker manifest create $image:$GIT_TAG $image:$GIT_TAG$AMD_ARCH $image:$GIT_TAG$ARM_ARCH $image:$GIT_TAG$S390X_ARCH docker manifest push $image:$GIT_TAG docker pull $image:$GIT_TAG sign-images $image:$GIT_TAG export BRANCH_BUILD_TAG=$BRANCH_TAG-$BUILD_NUMBER$OS_TAG - docker manifest create $image:$BRANCH_BUILD_TAG $image:$BRANCH_BUILD_TAG$AMD_ARCH $image:$BRANCH_BUILD_TAG$ARM_ARCH + docker manifest create $image:$BRANCH_BUILD_TAG $image:$BRANCH_BUILD_TAG$AMD_ARCH $image:$BRANCH_BUILD_TAG$ARM_ARCH $image:$BRANCH_BUILD_TAG$S390X_ARCH docker manifest push $image:$BRANCH_BUILD_TAG docker pull $image:$BRANCH_BUILD_TAG sign-images $image:$BRANCH_BUILD_TAG export PACKAGE_TAG=$BRANCH_TAG-$PACKAGING_BUILD_NUMBER$OS_TAG - docker manifest create $image:$PACKAGE_TAG $image:$PACKAGE_TAG$AMD_ARCH $image:$PACKAGE_TAG$ARM_ARCH + docker manifest create $image:$PACKAGE_TAG $image:$PACKAGE_TAG$AMD_ARCH $image:$PACKAGE_TAG$ARM_ARCH $image:$PACKAGE_TAG$S390X_ARCH docker manifest push $image:$PACKAGE_TAG export LATEST_MANIFEST_TAG=$LATEST_TAG$OS_TAG - docker manifest create $image:$LATEST_MANIFEST_TAG $image:$LATEST_MANIFEST_TAG$AMD_ARCH $image:$LATEST_MANIFEST_TAG$ARM_ARCH + docker manifest create $image:$LATEST_MANIFEST_TAG $image:$LATEST_MANIFEST_TAG$AMD_ARCH $image:$LATEST_MANIFEST_TAG$ARM_ARCH $image:$LATEST_MANIFEST_TAG$S390X_ARCH docker manifest push $image:$LATEST_MANIFEST_TAG done after_pipeline: @@ -546,4 +752,5 @@ after_pipeline: - checkout - artifact pull workflow target-AMD - artifact pull workflow target-ARM + - artifact pull workflow target-S390X - emit-sonarqube-data --run_only_sonar_scan diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index cd1b0cb1c5..f09962d4bf 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -99,6 +99,7 @@ global_job_config: - export DOCKER_DEV_TAG="dev-$BRANCH_TAG-$BUILD_NUMBER" - export AMD_ARCH=.amd64 - export ARM_ARCH=.arm64 + - export S390X_ARCH=.s390x blocks: - name: Validation dependencies: [] @@ -167,6 +168,44 @@ blocks: - . publish-test-results - artifact push workflow target/test-results - artifact push workflow target --destination target-ARM + - name: Build & Test S390X + dependencies: ["Validation"] + run: + when: "pull_request =~ '.*'" + task: + agent: + machine: + type: s1-prod-ubuntu24-04-amd64-1 + jobs: + - name: Build & Test ubi9 + commands: + # Setup QEMU for s390x emulation + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - docker buildx create --name s390x-builder --use || docker buildx use s390x-builder + - docker buildx inspect --bootstrap + # Make buildx the default builder so 'docker build' uses buildx + - docker buildx install + # Set default platform for all docker commands + - export DOCKER_DEFAULT_PLATFORM=linux/s390x + - export OS_TAG="-ubi9" + - export DOCKER_DEV_FULL_IMAGES=$DOCKER_DEV_REGISTRY${DOCKER_REPOS// /:$DOCKER_DEV_TAG$OS_TAG $DOCKER_DEV_REGISTRY}:$DOCKER_DEV_TAG$OS_TAG + - export S390X_DOCKER_DEV_FULL_IMAGES=${DOCKER_DEV_FULL_IMAGES// /$S390X_ARCH }$S390X_ARCH + - export OS_PACKAGES_URL=$(echo "$PACKAGES_URL" | sed "s/PACKAGE_TYPE/rpm/g") + - export PACKAGING_BUILD_ARGS="$PACKAGING_BUILD_ARGS -DCONFLUENT_PACKAGES_REPO=$OS_PACKAGES_URL" + - ci-tools ci-update-version + - mvn -Dmaven.wagon.http.retryHandler.count=3 --batch-mode -P jenkins,docker clean install dependency:analyze validate -U -Ddocker.registry=$DOCKER_DEV_REGISTRY + -Ddocker.upstream-registry=$DOCKER_UPSTREAM_REGISTRY -DBUILD_NUMBER=$BUILD_NUMBER -DGIT_COMMIT=$GIT_COMMIT -Ddocker.tag=$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH + -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS + - . cache-maven store + # Verify images are built for s390x architecture + - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Checking architecture of $image:" && docker inspect --format='{{.Architecture}}' $image; done + - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Pushing $image" && docker push $image; done + epilogue: + always: + commands: + - . publish-test-results + - artifact push workflow target/test-results + - artifact push workflow target --destination target-S390X after_pipeline: task: agent: @@ -184,4 +223,5 @@ after_pipeline: - checkout - artifact pull workflow target-AMD - artifact pull workflow target-ARM + - artifact pull workflow target-S390X - emit-sonarqube-data --run_only_sonar_scan diff --git a/base-java-micro/pom.xml b/base-java-micro/pom.xml index 820970d590..acb49ac50d 100644 --- a/base-java-micro/pom.xml +++ b/base-java-micro/pom.xml @@ -149,6 +149,11 @@ + + + ${docker.platform} + + ${app.uid} ${app.gid} diff --git a/base-java/pom.xml b/base-java/pom.xml index a563cde830..d51d4aa5eb 100644 --- a/base-java/pom.xml +++ b/base-java/pom.xml @@ -145,6 +145,11 @@ + + + ${docker.platform} + + ${ubi9-minimal.image.version} -${ubi9-minimal.temurin-21-jdk.version} diff --git a/base-lite/pom.xml b/base-lite/pom.xml index 81c8051414..7719168c75 100644 --- a/base-lite/pom.xml +++ b/base-lite/pom.xml @@ -100,6 +100,11 @@ + + + ${docker.platform} + + ${ubi9-minimal.image.version} -${ubi9-minimal.temurin-21-jdk.version} diff --git a/base/pom.xml b/base/pom.xml index 6ce60eeebb..a7b23f8765 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -158,6 +158,11 @@ + + + ${docker.platform} + + ${ubi9-minimal.image.version} -${ubi9-minimal.openssl.version} diff --git a/pom.xml b/pom.xml index dc20e8aa6c..018457d1fd 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,8 @@ Dockerfile.${docker.ubi9.os_type} ${io.confluent.common-docker.version}-${docker.ubi9.os_type} 8.3.0-0 + + From 1dbd76ee6bfe0b40b7fff49a9176ff8550b8454f Mon Sep 17 00:00:00 2001 From: Lan Yao Date: Mon, 26 Jan 2026 13:04:32 -0800 Subject: [PATCH 2/5] override to use fabric8 instead of spotify --- pom.xml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pom.xml b/pom.xml index 018457d1fd..b9dc665ecb 100644 --- a/pom.xml +++ b/pom.xml @@ -139,4 +139,31 @@ `-Ddocker.skip-security-update-check=true` --> false + + + + + docker + + + env.DOCKER_HOST + + + + + + + com.spotify + dockerfile-maven-plugin + + + package + none + + + + + + + From 081a9c701be9fa433b31a7b991fbdfdc48f9718b Mon Sep 17 00:00:00 2001 From: Lan Yao Date: Mon, 26 Jan 2026 19:18:11 -0800 Subject: [PATCH 3/5] fix --- .semaphore/cp_dockerfile_build.yml | 2 +- .semaphore/semaphore.yml | 2 +- pom.xml | 75 +++++++++++++++++++++++------- 3 files changed, 61 insertions(+), 18 deletions(-) diff --git a/.semaphore/cp_dockerfile_build.yml b/.semaphore/cp_dockerfile_build.yml index 2ed8c40a37..34875725f5 100644 --- a/.semaphore/cp_dockerfile_build.yml +++ b/.semaphore/cp_dockerfile_build.yml @@ -520,7 +520,7 @@ blocks: - ci-tools ci-update-version - mvn -Dmaven.wagon.http.retryHandler.count=3 --batch-mode -P jenkins,docker clean install dependency:analyze validate -U -Ddocker.registry=$DOCKER_DEV_REGISTRY -Ddocker.upstream-registry=$DOCKER_UPSTREAM_REGISTRY -DBUILD_NUMBER=$BUILD_NUMBER -DGIT_COMMIT=$GIT_COMMIT -Ddocker.tag=$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH - -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS + -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x -Ddocker.skip-test=true $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS - . cache-maven store # Verify images are built for s390x architecture - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Checking architecture of $image:" && docker inspect --format='{{.Architecture}}' $image; done diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index f09962d4bf..d7a9704828 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -195,7 +195,7 @@ blocks: - ci-tools ci-update-version - mvn -Dmaven.wagon.http.retryHandler.count=3 --batch-mode -P jenkins,docker clean install dependency:analyze validate -U -Ddocker.registry=$DOCKER_DEV_REGISTRY -Ddocker.upstream-registry=$DOCKER_UPSTREAM_REGISTRY -DBUILD_NUMBER=$BUILD_NUMBER -DGIT_COMMIT=$GIT_COMMIT -Ddocker.tag=$DOCKER_DEV_TAG$OS_TAG$S390X_ARCH - -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS + -Ddocker.upstream-tag=$DOCKER_UPSTREAM_TAG$OS_TAG -Darch.type=$S390X_ARCH -Ddocker.os_type=ubi9 -Ddocker.platform=linux/s390x -Ddocker.skip-test=true $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS - . cache-maven store # Verify images are built for s390x architecture - for image in $S390X_DOCKER_DEV_FULL_IMAGES; do echo "Checking architecture of $image:" && docker inspect --format='{{.Architecture}}' $image; done diff --git a/pom.xml b/pom.xml index b9dc665ecb..8e504422fc 100644 --- a/pom.xml +++ b/pom.xml @@ -141,28 +141,71 @@ - + + - docker + buildx - env.DOCKER_HOST + docker.platform - - - - com.spotify - dockerfile-maven-plugin - - - package - none - - - - + + + + + com.spotify + dockerfile-maven-plugin + + + default + none + + + package + none + + + tag + none + + + + + + io.fabric8 + docker-maven-plugin + 0.43.4 + + + + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + + ${docker.file} + ${project.basedir} + + + ${docker.platform} + + + + + + true + + + + build-image + package + + build + + + + + + From ee714848ce92e15ae8786a12c8947e76ef25761e Mon Sep 17 00:00:00 2001 From: Lan Yao Date: Mon, 26 Jan 2026 19:28:33 -0800 Subject: [PATCH 4/5] fix --- base-java-micro/pom.xml | 3 +++ base-java/pom.xml | 3 +++ base-lite/pom.xml | 3 +++ base/pom.xml | 3 +++ jmxterm/pom.xml | 29 +++++++++++++++++++++++++++++ pom.xml | 17 ----------------- 6 files changed, 41 insertions(+), 17 deletions(-) diff --git a/base-java-micro/pom.xml b/base-java-micro/pom.xml index acb49ac50d..8cb29e17bb 100644 --- a/base-java-micro/pom.xml +++ b/base-java-micro/pom.xml @@ -148,7 +148,10 @@ + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + ${docker.file} + ${project.basedir} ${docker.platform} diff --git a/base-java/pom.xml b/base-java/pom.xml index d51d4aa5eb..817dd46f2c 100644 --- a/base-java/pom.xml +++ b/base-java/pom.xml @@ -144,7 +144,10 @@ + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + ${docker.file} + ${project.basedir} ${docker.platform} diff --git a/base-lite/pom.xml b/base-lite/pom.xml index 7719168c75..877093f659 100644 --- a/base-lite/pom.xml +++ b/base-lite/pom.xml @@ -99,7 +99,10 @@ + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + ${docker.file} + ${project.basedir} ${docker.platform} diff --git a/base/pom.xml b/base/pom.xml index a7b23f8765..50b3689504 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -157,7 +157,10 @@ + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + ${docker.file} + ${project.basedir} ${docker.platform} diff --git a/jmxterm/pom.xml b/jmxterm/pom.xml index d3ef9a36ea..e8ad4a5221 100644 --- a/jmxterm/pom.xml +++ b/jmxterm/pom.xml @@ -47,4 +47,33 @@ + + + + io.fabric8 + docker-maven-plugin + 0.43.4 + + + + ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} + + ${docker.file} + ${project.basedir} + + + ${docker.platform} + + + + ${docker.registry} + ${docker.upstream-tag} + + + + + + + + diff --git a/pom.xml b/pom.xml index 8e504422fc..ea88c7a04d 100644 --- a/pom.xml +++ b/pom.xml @@ -177,23 +177,6 @@ io.fabric8 docker-maven-plugin 0.43.4 - - - - ${docker.registry}confluentinc/${project.artifactId}:${docker.tag} - - ${docker.file} - ${project.basedir} - - - ${docker.platform} - - - - - - true - build-image From 53944851726cbb2da7d4fd98d2883da20090114c Mon Sep 17 00:00:00 2001 From: Lan Yao Date: Mon, 26 Jan 2026 19:38:00 -0800 Subject: [PATCH 5/5] fix --- base-java-micro/pom.xml | 8 +++++--- base-java/pom.xml | 8 +++++--- base-lite/pom.xml | 8 +++++--- base/pom.xml | 17 ++++++++--------- jmxterm/pom.xml | 4 ++++ 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/base-java-micro/pom.xml b/base-java-micro/pom.xml index 8cb29e17bb..8f1dd43680 100644 --- a/base-java-micro/pom.xml +++ b/base-java-micro/pom.xml @@ -158,15 +158,17 @@ + ${project.artifactId} + ${project.version} + ${GIT_COMMIT} + ${BUILD_NUMBER} ${app.uid} ${app.gid} ${ubi9-micro.image.version} ${ubi9.image.version} -${ubi9.temurin-21-jdk.version} -${ubi9.procps-ng.version} - - ${docker.skip-security-update-check} - + ${docker.skip-security-update-check} ${golang.image.version} -${ubi9.crypto-policies-scripts.version} -${ubi9.findutils.version} diff --git a/base-java/pom.xml b/base-java/pom.xml index 817dd46f2c..10e25002ac 100644 --- a/base-java/pom.xml +++ b/base-java/pom.xml @@ -154,12 +154,14 @@ + ${project.artifactId} + ${project.version} + ${GIT_COMMIT} + ${BUILD_NUMBER} ${ubi9-minimal.image.version} -${ubi9-minimal.temurin-21-jdk.version} -${ubi9-minimal.procps-ng.version} - - ${docker.skip-security-update-check} - + ${docker.skip-security-update-check} ${golang.image.version} -${ubi9-minimal.crypto-policies-scripts.version} -${ubi9-minimal.findutils.version} diff --git a/base-lite/pom.xml b/base-lite/pom.xml index 877093f659..e75dd92efe 100644 --- a/base-lite/pom.xml +++ b/base-lite/pom.xml @@ -109,11 +109,13 @@ + ${project.artifactId} + ${project.version} + ${GIT_COMMIT} + ${BUILD_NUMBER} ${ubi9-minimal.image.version} -${ubi9-minimal.temurin-21-jdk.version} - - ${docker.skip-security-update-check} - + ${docker.skip-security-update-check} ${golang.image.version} diff --git a/base/pom.xml b/base/pom.xml index 50b3689504..8d1f6b20da 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -167,6 +167,10 @@ + ${project.artifactId} + ${project.version} + ${GIT_COMMIT} + ${BUILD_NUMBER} ${ubi9-minimal.image.version} -${ubi9-minimal.openssl.version} -${ubi9-minimal.wget.version} @@ -174,8 +178,7 @@ -${ubi9-minimal.python3.version} -${ubi9-minimal.tar.version} -${ubi9-minimal.procps-ng.version} - -${ubi9-minimal.krb5-workstation.version} - + -${ubi9-minimal.krb5-workstation.version} -${ubi9-minimal.iputils.version} -${ubi9-minimal.hostname.version} -${ubi9-minimal.xz-libs.version} @@ -184,13 +187,9 @@ -${ubi9-minimal.crypto-policies-scripts.version} -${ubi9-minimal.temurin-21-jdk.version} -${ubi9-minimal.python3-pip.version} - ==${python.setuptools.version} - - - ${git-repo.confluent-docker-utils.tag} - - ${docker.skip-security-update-check} - + ==${python.setuptools.version} + ${git-repo.confluent-docker-utils.tag} + ${docker.skip-security-update-check} diff --git a/jmxterm/pom.xml b/jmxterm/pom.xml index e8ad4a5221..2b815fb3ff 100644 --- a/jmxterm/pom.xml +++ b/jmxterm/pom.xml @@ -66,6 +66,10 @@ + ${project.artifactId} + ${project.version} + ${GIT_COMMIT} + ${BUILD_NUMBER} ${docker.registry} ${docker.upstream-tag}