pipeline { agent { label 'linux-aarch64' } 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') REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1') } stages { stage('Build') { when { tag "*" } steps { sh "podman build -t ${CONTAINER_REGISTRY}/${REPO_NAME}:${env.GIT_REF} ." } } stage('Push') { when { tag "*" } steps { withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'REG_USERNAME', passwordVariable: 'REG_PASSWORD')]) { sh ''' podman login docker.io -u $REG_USERNAME -p $REG_PASSWORD podman push ${CONTAINER_REGISTRY}/${REPO_NAME}:${GIT_REF} ''' } } } } }