pipeline { agent any environment { REGISTRY = "registry.wk-archi-o24a-15m-g3.fr" IMAGE_NAME = "the-tip-top-backend" } stages { stage('Checkout') { steps { echo "📩 RĂ©cupĂ©ration du code source..." checkout scm } } stage('Build Docker image') { steps { echo "🐳 Construction de l’image Docker backend..." sh """ docker build -t ${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} backend docker tag ${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} ${REGISTRY}/${IMAGE_NAME}:latest """ } } stage('Push to Registry') { 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 """ } } } stage('Deploy') { steps { echo "🚀 DĂ©ploiement du backend..." sh """ docker compose pull backend docker compose up -d --force-recreate backend """ } } } post { failure { echo "❌ Échec du pipeline backend." } success { echo "✅ DĂ©ploiement backend rĂ©ussi." } } }