try git ref
Some checks are pending
Build Multiarch Container Image / call-reusable-workflow (push) Waiting to run

This commit is contained in:
Sebastian Hugentobler 2025-06-04 12:42:01 +02:00
parent b68db4f50c
commit 74f4343b5e
Signed by: shu
SSH key fingerprint: SHA256:ppcx6MlixdNZd5EUM1nkHOKoyQYoJwzuQKXM6J/t66M

20
Jenkinsfile vendored
View file

@ -4,6 +4,7 @@ pipeline {
CONTAINER_REGISTRY = credentials("container_registry") CONTAINER_REGISTRY = credentials("container_registry")
REGISTRY_NAMESPACE = credentials("registry_namespace") REGISTRY_NAMESPACE = credentials("registry_namespace")
REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1') REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1')
IMAGE_NAME = "${env.CONTAINER_REGISTRY}/${env.REGISTRY_NAMESPACE}/${env.REPO_NAME}:${env.BRANCH_NAME}"
} }
stages { stages {
stage("Build") { stage("Build") {
@ -20,9 +21,12 @@ pipeline {
node(nodeLabel) { node(nodeLabel) {
checkout scm checkout scm
sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-${nodeLabel}-${env.BUILD_NUMBER} ." def run_name = "${nodeLabel}-${env.BUILD_NUMBER}"
sh "podman save -o ${nodeLabel}-${env.BUILD_NUMBER}.tar ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-${nodeLabel}-${env.BUILD_NUMBER}" def image_run_name = "${IMAGE_RUN_NAME}-${nodeLabel}-${env.BUILD_NUMBER}"
stash includes: "${nodeLabel}-${env.BUILD_NUMBER}.tar", name: "${nodeLabel}-image"
sh "podman build -t ${image_run_name} ."
sh "podman save -o ${run_name}.tar ${IMAGE_RUN_NAME}"
stash includes: "${run_name}.tar", name: "${nodeLabel}-image"
} }
} }
} }
@ -46,19 +50,19 @@ pipeline {
} }
def manifestImages = architectures.collect { arch -> def manifestImages = architectures.collect { arch ->
return "${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-${arch}-${env.BUILD_NUMBER}" return "${IMAGE_NAME}-${arch}-${env.BUILD_NUMBER}"
}.join(' ') }.join(' ')
sh """ sh """
podman manifest rm ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} || true podman manifest rm ${IMAGE_NAME} || true
podman manifest create ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} ${manifestImages} podman manifest create ${IMAGE_NAME} ${manifestImages}
""" """
withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) { withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) {
sh """ sh """
podman login ${CONTAINER_REGISTRY} -u ${REG_USERNAME} -p ${REG_PASSWORD} podman login ${CONTAINER_REGISTRY} -u ${REG_USERNAME} -p ${REG_PASSWORD}
podman manifest push ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \ podman manifest push ${IMAGE_NAME} \
docker://${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} docker://${IMAGE_NAME}
""" """
} }
} }