pipeline { agent any stages { stage('Build') { steps { echo 'Compilation du code...' // Ajoutez ici vos commandes de build, par exemple : sh 'mvn clean install' } } stage('Test') { steps { echo 'Exécution des tests...' // Ajoutez ici vos commandes de test } } stage('Deploy') { steps { echo 'Déploiement sur Portainer...' // Obtenir un jeton d'authentification de Portainer withCredentials([usernamePassword(credentialsId: 'portainer-credentials', usernameVariable: 'PORTAINER_USERNAME', passwordVariable: 'PORTAINER_PASSWORD')]) { script { def response = httpRequest httpMode: 'POST', contentType: 'APPLICATION_JSON', url: "http://portainer.canguidev.fr/api/auth", requestBody: "{\"Username\":\"admin\",\"Password\":\"j6+M&5jKwrCf+:+\"}" def json = readJSON text: response.content env.PORTAINER_TOKEN = json.jwt } } // Déployer la stack sur Portainer httpRequest httpMode: 'PUT', customHeaders: [[name: 'Authorization', value: "Bearer ptr_2bbjwbBGravgP2gERwL5h/QNq9gmBT/41fYjtjbb07k="]], url: "http://portainer.canguidev.fr/api/stacks/canguidev/deploy", contentType: 'APPLICATION_JSON', requestBody: '{"Prune": true}' echo 'Déploiement terminé.' } } } }