Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 73 additions & 5 deletions .semaphore/cp_dockerfile_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,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: []
Expand Down Expand Up @@ -237,8 +238,74 @@ 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:
# Enable QEMU for s390x emulation since native agents are not available
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- 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 package 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 $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS
- . cache-maven store
- 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-kcat
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-kcat ubi9
env_vars:
- name: DOCKER_IMAGE
value: confluentinc/cp-kcat
commands:
# Enable QEMU for s390x emulation since native agents are not available
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- export OS_TAG="-ubi9"
- export PROD_IMAGE_NAME=${DOCKER_PROD_REGISTRY}confluentinc/cp-kcat
- 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-kcat:$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-kcat", "Deploy ARM confluentinc/cp-kcat"]
dependencies: ["Deploy AMD confluentinc/cp-kcat", "Deploy ARM confluentinc/cp-kcat", "Deploy s390x confluentinc/cp-kcat"]
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:
Expand All @@ -258,20 +325,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:
Expand All @@ -291,4 +358,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
32 changes: 32 additions & 0 deletions .semaphore/semaphore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,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: []
Expand Down Expand Up @@ -165,6 +166,36 @@ 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:
# Enable QEMU for s390x emulation since native agents are not available
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- 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 package 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 $PACKAGING_BUILD_ARGS -Ddependency.check.skip=true $MAVEN_EXTRA_ARGS
- . cache-maven store
- 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:
Expand All @@ -182,4 +213,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