spring-petclinic/JenkinsFile

86 lines
2.5 KiB
Text
Raw Normal View History

2025-11-17 15:23:15 +00:00
pipeline {
agent any
tools {
2025-11-17 15:45:12 +00:00
jdk 'jdk-17'
maven 'maven-3.9.9'
2025-11-17 15:23:15 +00:00
}
environment {
2025-11-17 16:46:51 +00:00
JAVA_HOME = '/Users/mac/Library/Java/JavaVirtualMachines/ms-17.0.16/Contents/Home'
PATH = "${JAVA_HOME}/bin:${env.PATH}"
2025-11-17 16:12:03 +00:00
SONAR_TOKEN = credentials('01')
2025-11-17 15:23:15 +00:00
SONAR_HOST = 'https://sonarcloud.io'
IMAGE = 'spring-petclinic'
TAG = 'latest'
2025-11-17 16:32:40 +00:00
DOCKER_HOST = "tcp://10.52.81.17:2375"
2025-11-17 19:25:06 +00:00
2025-11-17 15:23:15 +00:00
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/RhitaKhadijaAssia/spring-petclinic'
}
}
stage('Build & Unit Tests') {
steps {
2025-11-17 17:11:23 +00:00
dir('.') {
2025-11-17 19:25:06 +00:00
sh '''
2025-11-17 16:46:51 +00:00
echo "JAVA_HOME=$JAVA_HOME"
java -version
2025-11-17 19:25:06 +00:00
mvn -B -U clean verify -Dspring-javaformat.skip
2025-11-17 16:46:51 +00:00
'''
2025-11-17 15:23:15 +00:00
}
}
post {
2025-11-17 19:25:06 +00:00
2025-11-17 15:23:15 +00:00
always {
junit allowEmptyResults: true, testResults: 'backend/target/surefire-reports/*.xml'
archiveArtifacts artifacts: 'backend/target/*.jar', fingerprint: true
}
}
}
2025-11-17 16:46:51 +00:00
2025-11-17 15:23:15 +00:00
stage('SonarQube Analysis') {
steps {
2025-11-17 17:11:23 +00:00
dir('backend') {
2025-11-17 16:32:40 +00:00
sh """
2025-11-17 16:40:19 +00:00
mvn sonar:sonar \
-Dsonar.projectKey=RhitaKhadijaAssia_spring-petclinic \
-Dsonar.organization=rhitakhadijaassia \
-Dsonar.host.url=${SONAR_HOST} \
-Dsonar.login=${SONAR_TOKEN}
2025-11-17 15:23:15 +00:00
"""
}
}
}
2025-11-17 18:59:02 +00:00
/***stage('Build Docker on remote machine') {
2025-11-17 15:23:15 +00:00
steps {
dir('backend') {
2025-11-17 16:40:19 +00:00
sh "docker -H ${DOCKER_HOST} build -t ${IMAGE}:${TAG} ."
2025-11-17 15:23:15 +00:00
}
}
}
stage('Run Docker on remote machine') {
steps {
2025-11-17 16:32:40 +00:00
sh """
2025-11-17 16:40:19 +00:00
docker -H ${DOCKER_HOST} stop ${IMAGE} || true
docker -H ${DOCKER_HOST} rm ${IMAGE} || true
docker -H ${DOCKER_HOST} run -d -p 8080:8080 --name ${IMAGE} ${IMAGE}:${TAG}
2025-11-17 15:23:15 +00:00
"""
}
2025-11-17 18:59:02 +00:00
}**/
2025-11-17 15:23:15 +00:00
}
post {
success { echo "Pipeline OK → Docker lancé sur la machine distante" }
failure { echo "Pipeline KO" }
}
}