2025-07-13 21:51:56 +02:00
|
|
|
pipeline {
|
2025-07-13 21:53:58 +02:00
|
|
|
agent any
|
2025-07-13 21:51:56 +02:00
|
|
|
|
2025-07-14 20:11:52 +02:00
|
|
|
triggers {
|
2025-07-14 20:40:07 +02:00
|
|
|
GenericTrigger(
|
2025-07-14 20:38:53 +02:00
|
|
|
causeString: 'Triggered on tag push',
|
|
|
|
|
token: 'tag-trigger-secret',
|
|
|
|
|
printContributedVariables: true,
|
|
|
|
|
printPostContent: true,
|
|
|
|
|
regexpFilterExpression: 'ref=refs/tags/.*',
|
|
|
|
|
regexpFilterText: '$ref'
|
|
|
|
|
)
|
2025-07-14 20:11:52 +02:00
|
|
|
}
|
|
|
|
|
|
2025-07-13 21:53:58 +02:00
|
|
|
environment {
|
|
|
|
|
REGISTRY = 'codeberg.org'
|
|
|
|
|
IMAGE_NAME = "${REGISTRY}/lvl0/incr"
|
2025-07-14 20:11:52 +02:00
|
|
|
DOCKER_CREDENTIALS_ID = 'codeberg-registry'
|
2025-07-13 21:53:58 +02:00
|
|
|
}
|
2025-07-13 21:51:56 +02:00
|
|
|
|
2025-07-13 21:53:58 +02:00
|
|
|
stages {
|
2025-07-14 20:11:52 +02:00
|
|
|
stage('Tag Check') {
|
2025-07-13 21:53:58 +02:00
|
|
|
steps {
|
|
|
|
|
script {
|
2025-07-14 20:11:52 +02:00
|
|
|
def isTag = sh(script: 'git describe --tags --exact-match || echo "nope"', returnStdout: true).trim()
|
|
|
|
|
if (isTag == "nope") {
|
|
|
|
|
echo "Not a tag. Skipping build."
|
|
|
|
|
currentBuild.result = 'NOT_BUILT'
|
|
|
|
|
return
|
2025-07-13 21:53:58 +02:00
|
|
|
}
|
2025-07-13 21:51:56 +02:00
|
|
|
}
|
2025-07-13 21:53:58 +02:00
|
|
|
}
|
|
|
|
|
}
|
2025-07-14 20:11:52 +02:00
|
|
|
stage('Build & Push Docker Image') {
|
|
|
|
|
when {
|
|
|
|
|
expression {
|
|
|
|
|
return env.GIT_COMMIT && env.GIT_COMMIT != ""
|
|
|
|
|
}
|
2025-07-13 21:53:58 +02:00
|
|
|
}
|
|
|
|
|
steps {
|
2025-07-14 20:38:53 +02:00
|
|
|
sh 'docker build -t $IMAGE_NAME:$GIT_COMMIT -f docker/Dockerfile .'
|
2025-07-14 20:11:52 +02:00
|
|
|
withCredentials([usernamePassword(credentialsId: "$DOCKER_CREDENTIALS_ID", usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
|
2025-07-13 21:55:03 +02:00
|
|
|
sh """
|
2025-07-14 20:11:52 +02:00
|
|
|
echo "$PASSWORD" | docker login $REGISTRY -u "$USERNAME" --password-stdin
|
|
|
|
|
docker push $IMAGE_NAME:$GIT_COMMIT
|
2025-07-13 21:55:03 +02:00
|
|
|
"""
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|