pipeline { agent any environment { REGISTRY = 'codeberg.org/lvl0/incr' IMAGE_TAG = "${env.GIT_TAG_NAME ?: 'latest'}" } triggers { pollSCM('H/5 * * * *') // Replace with webhook later } stages { stage('Check Tag') { when { expression { return env.GIT_TAG_NAME != null } } steps { echo "🕵️ Detected tag: ${env.GIT_TAG_NAME}" } } stage('Build Docker Image') { when { expression { return env.GIT_TAG_NAME != null } } steps { sh """ echo "⚙️ Building Docker image for ${IMAGE_TAG}" docker build -f docker/Dockerfile -t ${REGISTRY}:${IMAGE_TAG} . """ } } stage('Push to Registry') { when { expression { return env.GIT_TAG_NAME != null } } steps { withCredentials([usernamePassword(credentialsId: 'codeberg-registry', usernameVariable: 'REGISTRY_USER', passwordVariable: 'REGISTRY_PASS')]) { sh """ echo "$REGISTRY_PASS" | docker login ${REGISTRY} -u "$REGISTRY_USER" --password-stdin docker push ${REGISTRY}:${IMAGE_TAG} """ } } } } }