diff --git a/Jenkinsfile b/Jenkinsfile index 030eaa15..8f6fb797 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,6 +4,8 @@ pipeline { environment { REGISTRY = "registry.wk-archi-o24a-15m-g3.fr" IMAGE_NAME = "the-tip-top-backend" + APP_PATH = "/srv/devops/the-tip-top" + DEPLOY_HOST = "localhost" } stages { @@ -18,10 +20,10 @@ pipeline { stage('Build Docker image') { steps { echo "🐳 Construction de l’image Docker backend..." - sh """ - docker build -t ${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} . - docker tag ${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} ${REGISTRY}/${IMAGE_NAME}:latest - """ + sh ''' + docker build -t $REGISTRY/$IMAGE_NAME:${BUILD_NUMBER} . + docker tag $REGISTRY/$IMAGE_NAME:${BUILD_NUMBER} $REGISTRY/$IMAGE_NAME:latest + ''' } } @@ -29,11 +31,11 @@ pipeline { steps { echo "đŸ“€ Envoi de l’image vers le registre privĂ©..." withCredentials([usernamePassword(credentialsId: 'registry-credentials', usernameVariable: 'REG_USER', passwordVariable: 'REG_PASS')]) { - sh """ - echo $REG_PASS | docker login ${REGISTRY} -u $REG_USER --password-stdin - docker push ${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} - docker push ${REGISTRY}/${IMAGE_NAME}:latest - """ + sh ''' + echo "$REG_PASS" | docker login $REGISTRY -u $REG_USER --password-stdin + docker push $REGISTRY/$IMAGE_NAME:${BUILD_NUMBER} + docker push $REGISTRY/$IMAGE_NAME:latest + ''' } } } @@ -41,20 +43,32 @@ pipeline { stage('Deploy') { steps { echo "🚀 DĂ©ploiement du backend..." - sh """ + sh ''' + if [ ! -f $APP_PATH/docker-compose.yml ]; then + echo "❌ Fichier docker-compose.yml introuvable !" >&2 + exit 1 + fi + + cd $APP_PATH docker compose pull backend docker compose up -d --force-recreate backend - """ + ''' } } stage('Health Check') { steps { - echo "đŸ©ș VĂ©rification du dĂ©ploiement..." + echo "đŸ©ș VĂ©rification du backend aprĂšs dĂ©ploiement..." script { - def code = sh(script: "curl -s -o /dev/null -w '%{http_code}' https://api.dsp5-archi-o24a-15m-g3.fr || echo 000", returnStdout: true).trim() - if (code != "200") { - error "Le backend ne rĂ©pond pas correctement (code HTTP ${code})" + def statusCode = sh( + script: "curl -k -s -o /dev/null -w '%{http_code}' https://api.dsp5-archi-o24a-15m-g3.fr || echo 000", + returnStdout: true + ).trim() + + if (statusCode != '200') { + error("❌ Health check Ă©chouĂ© - code HTTP ${statusCode}") + } else { + echo "✅ Health check rĂ©ussi - backend opĂ©rationnel !" } } } @@ -63,7 +77,7 @@ pipeline { post { success { - echo "✅ DĂ©ploiement du backend rĂ©ussi." + echo "✅ DĂ©ploiement backend terminĂ© avec succĂšs !" } failure { echo "❌ Échec du pipeline backend."