Jenkinsfile update

This commit is contained in:
2025-01-18 14:42:10 +01:00
parent 90a008cd8c
commit 5abb730fd6

73
Jenkinsfile vendored
View File

@@ -2,25 +2,68 @@ pipeline {
agent any agent any
environment { environment {
// Definieer de SSH credentials ID die in Jenkins is opgeslagen SSH_CREDENTIALS_ID = 'ssh-true-nas' // ID van de SSH-sleutel in Jenkins
SSH_CREDENTIALS_ID = 'ssh-true-nas' TRUENAS_HOST = '192.168.2.31' // IP-adres of hostname van TrueNAS
TRUENAS_HOST = '192.168.2.31' // Pas aan naar het IP-adres van de TrueNAS server SSH_USER = 'jenkins' // SSH-gebruiker voor TrueNAS
SSH_USER = 'jenkins' // Pas aan naar de SSH-gebruikersnaam IMAGE_NAME = 'jobFindr' // Naam van de Docker-image
IMAGE_TAG = 'latest' // Docker-tag
} }
stages { stages {
stage('Connect to TrueNAS') { stage('Checkout Code') {
steps {
checkout scm
}
}
stage('Build Quarkus Project') {
steps { steps {
script { script {
echo "hallo" // Bouw het Quarkus-project (assumeert Maven als build tool)
// Gebruik SSH-agent om een verbinding te maken sh './mvnw clean package -DskipTests'
}
}
}
stage('Build Docker Image') {
steps {
script {
// Maak een Docker-image gebaseerd op de Dockerfile
sh """
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
"""
}
}
}
stage('Push Docker Image (Optional)') {
when {
expression {
return env.DOCKER_REGISTRY != null && env.DOCKER_REGISTRY.trim() != ''
}
}
steps {
script {
// Push de Docker-image naar een Docker Registry
sh """
docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${env.DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
docker push ${env.DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
}
stage('Deploy Docker Image to TrueNAS') {
steps {
script {
// Verbind via SSH met TrueNAS en voer Docker-installatiecommando's uit
sshagent([SSH_CREDENTIALS_ID]) { sshagent([SSH_CREDENTIALS_ID]) {
// Command uitvoeren op de TrueNAS server via SSH
sh """ sh """
ssh -o StrictHostKeyChecking=no ${SSH_USER}@${TRUENAS_HOST} << EOF ssh -o StrictHostKeyChecking=no ${SSH_USER}@${TRUENAS_HOST} << EOF
echo "Verbinding succesvol met TrueNAS" docker stop ${IMAGE_NAME} || true
hostname docker rm ${IMAGE_NAME} || true
exit docker pull ${IMAGE_NAME}:${IMAGE_TAG} || echo "Local image will be used"
docker run -d --name ${IMAGE_NAME} -p 8080:8080 ${IMAGE_NAME}:${IMAGE_TAG}
EOF EOF
""" """
} }
@@ -28,4 +71,12 @@ pipeline {
} }
} }
} }
post {
always {
script {
echo "Pipeline execution completed."
}
}
}
} }