atuin/Jenkinsfile

57 lines
2.5 KiB
Text
Raw Normal View History

2025-03-06 16:03:07 +01:00
pipeline {
2025-06-04 09:46:39 +02:00
agent none
2025-06-03 18:52:56 +02:00
environment {
2025-06-04 09:46:39 +02:00
CONTAINER_REGISTRY = credentials("container_registry")
REGISTRY_NAMESPACE = credentials("registry_namespace")
2025-06-04 08:28:49 +02:00
REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1')
2025-06-03 18:52:56 +02:00
}
2025-03-06 16:03:07 +01:00
stages {
2025-06-04 09:46:39 +02:00
stage("Build") {
2025-06-03 19:17:12 +02:00
when { tag "*" }
2025-06-04 09:46:39 +02:00
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'
}
}
2025-03-06 16:03:07 +01:00
}
}
2025-06-04 09:46:39 +02:00
stage("Combine and Push") {
2025-06-03 19:32:22 +02:00
when { tag "*" }
2025-06-04 09:46:39 +02:00
agent any
2025-06-03 19:32:22 +02:00
steps {
2025-06-04 09:46:39 +02:00
unstash 'aarch64-image'
unstash 'x86_64-image'
sh "podman load -i aarch64.tar"
sh "podman load -i x86_64.tar"
2025-06-04 09:47:45 +02:00
sh '''
podman manifest create ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \
2025-06-04 09:46:39 +02:00
${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-aarch64 \
${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}-x86_64
2025-06-04 09:47:45 +02:00
'''
2025-06-04 09:46:39 +02:00
withCredentials([usernamePassword(credentialsId: "dockerhub", usernameVariable: "REG_USERNAME", passwordVariable: "REG_PASSWORD")]) {
2025-06-03 19:32:22 +02:00
sh '''
2025-06-04 08:30:40 +02:00
podman login ${CONTAINER_REGISTRY} -u ${REG_USERNAME} -p ${REG_PASSWORD}
2025-06-04 09:46:39 +02:00
podman manifest push ${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME} \
docker://${CONTAINER_REGISTRY}/${REGISTRY_NAMESPACE}/${REPO_NAME}:${BRANCH_NAME}
2025-06-03 19:32:22 +02:00
'''
}
}
}
2025-03-06 16:03:07 +01:00
}
2025-06-03 18:38:40 +02:00
}