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 09:46:39 +02:00
parent 36d8ba85dd
commit c62341ddad
Signed by: shu
SSH key fingerprint: SHA256:ppcx6MlixdNZd5EUM1nkHOKoyQYoJwzuQKXM6J/t66M

49
Jenkinsfile vendored
View file

@ -1,28 +1,51 @@
pipeline {
agent { label 'linux-aarch64' }
agent none
environment {
GIT_REF = """${sh(
returnStdout: true,
script: 'git describe --tags --exact-match 2>/dev/null || git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD'
).trim()}"""
CONTAINER_REGISTRY = credentials('container_registry')
REGISTRY_NAMESPACE = credentials('registry_namespace')
CONTAINER_REGISTRY = credentials("container_registry")
REGISTRY_NAMESPACE = credentials("registry_namespace")
REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1')
}
stages {
stage('Build') {
stage("Build") {
when { tag "*" }
steps {
sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME} ."
parallel {
stage("aarch64") {
agent { label "aarch64" }
steps {
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"
stash includes: "aarch64.tar", name: 'aarch64-image'
}
}
stage("x86_64") {
agent { label "x86_64" }
steps {
sh "podman build -t ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${env.BRANCH_NAME}-x86_64 ."
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'
}
}
}
}
stage('Push') {
stage("Combine and Push") {
when { tag "*" }
agent any
steps {
withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'REG_USERNAME', passwordVariable: 'REG_PASSWORD')]) {
unstash 'aarch64-image'
unstash 'x86_64-image'
sh "podman load -i aarch64.tar"
sh "podman load -i x86_64.tar"
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}-x86_64
withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) {
sh '''
podman login ${CONTAINER_REGISTRY} -u ${REG_USERNAME} -p ${REG_PASSWORD}
podman push ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}
podman manifest push ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \
docker://${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}
'''
}
}