try git ref
Some checks are pending
Build Multiarch Container Image / call-reusable-workflow (push) Waiting to run
Some checks are pending
Build Multiarch Container Image / call-reusable-workflow (push) Waiting to run
This commit is contained in:
parent
36d8ba85dd
commit
c62341ddad
1 changed files with 36 additions and 13 deletions
49
Jenkinsfile
vendored
49
Jenkinsfile
vendored
|
@ -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}
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue