56 lines
1.5 KiB
Text
56 lines
1.5 KiB
Text
|
|
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}
|
||
|
|
"""
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|