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 10:31:57 +02:00
parent b573cea026
commit d1a55a0e39
Signed by: shu
SSH key fingerprint: SHA256:ppcx6MlixdNZd5EUM1nkHOKoyQYoJwzuQKXM6J/t66M

41
Jenkinsfile vendored
View file

@ -6,24 +6,27 @@ pipeline {
REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1') REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1')
} }
stages { stages {
stage("Build") { stage("Build") {
when { tag "*" } when { tag "*" }
parallel { steps {
stage("aarch64") { script {
agent { label "aarch64" } def architectures = ["aarch64", "x86_64"]
steps { def parallelStages = [:]
sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-aarch64 ."
sh "podman save -o aarch64.tar ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-aarch64" for (arch in architectures) {
stash includes: "aarch64.tar", name: 'aarch64-image' def nodeLabel = arch
}
} parallelStages[arch] = {
stage("x86_64") { node(nodeLabel) {
agent { label "x86_64" } sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-${nodeLabel}-${env.BUILD_NUMBER} ."
steps { sh "podman save -o ${nodeLabel}.tar ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-${nodeLabel}-${env.BUILD_NUMBER}"
sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-x86_64 ." stash includes: "${nodeLabel}.tar", name: "${nodeLabel}-image"
sh "podman save -o x86_64.tar ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-x86_64" }
stash includes: "x86_64.tar", name: 'x86_64-image' }
} }
parallel parallelStages
} }
} }
} }
@ -31,16 +34,16 @@ pipeline {
when { tag "*" } when { tag "*" }
agent any agent any
steps { steps {
unstash 'aarch64-image' unstash "aarch64-image"
unstash 'x86_64-image' unstash "x86_64-image"
sh "podman load -i aarch64.tar" sh "podman load -i aarch64.tar"
sh "podman load -i x86_64.tar" sh "podman load -i x86_64.tar"
sh ''' sh '''
podman manifest create ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \ podman manifest create ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \
${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-aarch64 \ ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-aarch64-${BUILD_NUMBER} \
${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-x86_64 ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-x86_64-${BUILD_NUMBER}
''' '''
withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) { withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) {