From cc20d0d3f60051e46c6c79746d3a54625411e6ff Mon Sep 17 00:00:00 2001 From: SniAssia Date: Mon, 17 Nov 2025 15:23:15 +0000 Subject: [PATCH 1/2] nn --- JenkinsFile | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 JenkinsFile diff --git a/JenkinsFile b/JenkinsFile new file mode 100644 index 000000000..65dc122d7 --- /dev/null +++ b/JenkinsFile @@ -0,0 +1,78 @@ +pipeline { + agent any + + tools { + jdk 'jdk17' + maven 'maven' + } + + environment { + SONAR_TOKEN = credentials('edf40d2f41d32dc9a7e0a42cb45aa683e645760c') + SONAR_HOST = 'https://sonarcloud.io' + IMAGE = 'spring-petclinic' + TAG = 'latest' + DOCKER_HOST = "tcp://10.52.81.17:2375" // << Nouveau + } + + stages { + + stage('Checkout') { + steps { + git branch: 'main', url: 'https://github.com/RhitaKhadijaAssia/spring-petclinic' + } + } + + stage('Build & Unit Tests') { + steps { + dir('backend') { + bat 'mvn -B -U clean verify' + } + } + post { + always { + junit allowEmptyResults: true, testResults: 'backend/target/surefire-reports/*.xml' + archiveArtifacts artifacts: 'backend/target/*.jar', fingerprint: true + } + } + } + + stage('SonarQube Analysis') { + steps { + dir('backend') { + bat """ + mvn sonar:sonar ^ + -Dsonar.projectKey=resevation_devices ^ + -Dsonar.organization=TON_ORGANISATION ^ + -Dsonar.host.url=%SONAR_HOST% ^ + -Dsonar.login=%SONAR_TOKEN% + """ + } + } + } + + stage('Build Docker on remote machine') { + steps { + dir('backend') { + bat """ + docker -H %DOCKER_HOST% build -t %IMAGE%:%TAG% . + """ + } + } + } + + stage('Run Docker on remote machine') { + steps { + bat """ + docker -H %DOCKER_HOST% stop %IMAGE% || exit 0 + docker -H %DOCKER_HOST% rm %IMAGE% || exit 0 + docker -H %DOCKER_HOST% run -d -p 8080:8080 --name %IMAGE% %IMAGE%:%TAG% + """ + } + } + } + + post { + success { echo "Pipeline OK → Docker lancé sur la machine distante" } + failure { echo "Pipeline KO" } + } +} From db7490c07c2b3d56eee8fc808477ea5b50c15474 Mon Sep 17 00:00:00 2001 From: SniAssia Date: Mon, 17 Nov 2025 15:29:32 +0000 Subject: [PATCH 2/2] nn --- Jenkinsfile | 76 ----------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 0e6395e79..000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,76 +0,0 @@ -pipeline { - agent any - - tools { - jdk 'jdk17' - maven 'maven' - } - - environment { - SONAR_TOKEN = credentials('edf40d2f41d32dc9a7e0a42cb45aa683e645760c') - SONAR_HOST = 'http://localhost:9000' // SonarQube local - IMAGE = 'spring-petclinic' // Nom local de l'image Docker - TAG = 'latest' - } - - stages { - - stage('Checkout') { - steps { - git branch: 'main', url: 'https://github.com/zinebmouman/resevation_devices.git' - } - } - - stage('Build & Unit Tests') { - steps { - dir('backend') { - bat 'mvn -B -U clean verify' - } - } - post { - always { - junit allowEmptyResults: true, testResults: 'backend/target/surefire-reports/*.xml' - archiveArtifacts artifacts: 'backend/target/*.jar', fingerprint: true - } - } - } - - stage('SonarQube Analysis') { - steps { - dir('backend') { - bat """ - mvn sonar:sonar ^ - -Dsonar.projectKey=resevation_devices ^ - -Dsonar.host.url=%SONAR_HOST% ^ - -Dsonar.login=%SONAR_TOKEN% - """ - } - } - } - - stage('Build Docker locally') { - steps { - dir('backend') { - bat """ - docker build -t %IMAGE%:%TAG% . - """ - } - } - } - - stage('Run Docker locally') { - steps { - bat """ - docker stop %IMAGE% || exit 0 - docker rm %IMAGE% || exit 0 - docker run -d -p 8080:8080 --name %IMAGE% %IMAGE%:%TAG% - """ - } - } - } - - post { - success { echo "Pipeline OK → Docker local lancé : %IMAGE%:%TAG%" } - failure { echo "Pipeline KO" } - } -}