2025-11-23 00:19:06 +01:00
|
|
|
pipeline {
|
|
|
|
|
agent any
|
2025-11-23 00:39:26 +01:00
|
|
|
|
2025-11-23 00:59:37 +01:00
|
|
|
|
|
|
|
|
environment {
|
|
|
|
|
JAVA_HOME = '/var/lib/jenkins/tools/hudson.model.JDK/jdk25'
|
|
|
|
|
PATH = "${JAVA_HOME}/bin:${PATH}"
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-23 00:39:26 +01:00
|
|
|
tools {
|
|
|
|
|
jdk 'jdk25'
|
2025-11-23 00:48:59 +01:00
|
|
|
maven 'maven-3.9'
|
2025-11-23 00:39:26 +01:00
|
|
|
}
|
|
|
|
|
|
2025-11-23 00:19:06 +01:00
|
|
|
stages {
|
|
|
|
|
stage('Compilation') {
|
|
|
|
|
steps {
|
|
|
|
|
echo "Compilation du projet..."
|
|
|
|
|
sh 'mvn clean compile'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
stage('Tests') {
|
|
|
|
|
steps {
|
|
|
|
|
echo "Exécution des tests..."
|
|
|
|
|
sh 'mvn test'
|
|
|
|
|
}
|
|
|
|
|
post {
|
|
|
|
|
always {
|
|
|
|
|
// Publier les résultats de tests JUnit dans Jenkins
|
|
|
|
|
junit 'target/surefire-reports/*.xml'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
stage('Packaging') {
|
|
|
|
|
steps {
|
|
|
|
|
echo "Packaging de l'application (sans exécuter les tests)..."
|
|
|
|
|
sh 'mvn package -DskipTests'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
stage('Déploiement') {
|
|
|
|
|
steps {
|
|
|
|
|
echo "Démarrage de l'application Spring Boot..."
|
|
|
|
|
// Arr\u00eater l'application si elle tourne d\u00e9j\u00e0 (pour ne pas dupliquer les instances)
|
|
|
|
|
sh 'pkill -f "java -jar" || echo "Aucune ancienne instance \u00e0 arr\u00eater"'
|
|
|
|
|
// D\u00e9marrer la nouvelle version en arri\u00e8re-plan
|
|
|
|
|
sh 'nohup java -jar target/*.jar --server.port=8081 &'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|