diff --git a/JENKINS_WEBHOOK_SETUP.md b/JENKINS_WEBHOOK_SETUP.md new file mode 100644 index 0000000..88bb7e1 --- /dev/null +++ b/JENKINS_WEBHOOK_SETUP.md @@ -0,0 +1,147 @@ +# Configuration du Webhook Jenkins pour Auto-dĂ©ploiement + +## 📋 Vue d'ensemble + +Le Jenkinsfile a Ă©tĂ© configurĂ© avec deux mĂ©thodes de dĂ©clenchement automatique : + +1. **Polling SCM** (Simple mais moins efficace) +2. **Webhook Gitea** (RecommandĂ© - plus rapide et efficace) + +--- + +## ⚙ Option 1 : Polling SCM (DĂ©jĂ  actif) + +Le pipeline vĂ©rifie automatiquement les changements **toutes les minutes**. + +**Avantages :** +- ✅ Aucune configuration supplĂ©mentaire nĂ©cessaire +- ✅ Fonctionne immĂ©diatement + +**InconvĂ©nients :** +- ❌ DĂ©lai de dĂ©tection (jusqu'Ă  1 minute) +- ❌ Charge sur le serveur Git + +--- + +## 🚀 Option 2 : Webhook Gitea (RecommandĂ©) + +### Configuration dans Gitea + +1. **AccĂ©der aux paramĂštres du dĂ©pĂŽt :** + - Aller sur : `https://gitea.wk-archi-o24a-15m-g3.fr/wkadmin/the-tip-top-frontend` + - Cliquer sur **ParamĂštres** (Settings) → **Webhooks** + +2. **CrĂ©er un nouveau webhook :** + - Cliquer sur **Ajouter un Webhook** → **Gitea** + - Remplir les champs suivants : + + ``` + URL cible : http:///generic-webhook-trigger/invoke?token=the-tip-top-frontend-token + + MĂ©thode HTTP : POST + + Type de contenu : application/json + + Secret : (laisser vide ou utiliser un secret personnalisĂ©) + + ÉvĂ©nements dĂ©clencheurs : + ☑ Push + ☐ Create + ☐ Delete + ☐ Fork + ☐ Issues + ☐ Pull Request + ☐ Release + + Actif : ☑ Oui + ``` + +3. **Remplacer `` par :** + - L'URL de votre serveur Jenkins (ex: `jenkins.wk-archi-o24a-15m-g3.fr`) + +4. **Tester le webhook :** + - AprĂšs crĂ©ation, cliquer sur le webhook + - Cliquer sur **Tester la livraison** + - VĂ©rifier que le statut est **200 OK** + +--- + +## 🔐 SĂ©curitĂ© + +Le token `the-tip-top-frontend-token` dans le Jenkinsfile protĂšge le webhook contre les dĂ©clenchements non autorisĂ©s. + +Pour changer le token : +1. Modifier la ligne dans `Jenkinsfile` : + ```groovy + token: 'votre-nouveau-token-secret' + ``` +2. Mettre Ă  jour l'URL du webhook dans Gitea + +--- + +## đŸ§Ș Tester le dĂ©clenchement automatique + +1. Faire un commit et push : + ```bash + git add . + git commit -m "test: trigger auto deployment" + git push origin dev + ``` + +2. VĂ©rifier dans Jenkins : + - Le build devrait dĂ©marrer automatiquement + - Consulter les logs pour voir le message : `Triggered by Gitea push` + +--- + +## 📊 Branches et Environnements + +Le pipeline dĂ©tecte automatiquement l'environnement selon la branche : + +| Branche | Environnement | Tag Docker | +|-----------|---------------|---------------| +| `dev` | dev | dev-latest | +| `preprod` | preprod | preprod-latest| +| `main` | prod | prod-latest | + +--- + +## đŸ› ïž Plugin Jenkins requis + +Pour utiliser le webhook avec `GenericTrigger`, assurez-vous que le plugin suivant est installĂ© : + +- **Generic Webhook Trigger Plugin** + +Installation : +1. Jenkins → Manage Jenkins → Manage Plugins +2. Onglet "Available" → Rechercher "Generic Webhook Trigger" +3. Installer et redĂ©marrer Jenkins + +--- + +## 📝 Notes + +- Le polling SCM (`* * * * *`) restera actif comme solution de secours +- Vous pouvez le dĂ©sactiver une fois le webhook configurĂ© en commentant la ligne `pollSCM` +- Les deux mĂ©thodes peuvent coexister sans problĂšme + +--- + +## ❓ Troubleshooting + +### Le webhook ne se dĂ©clenche pas + +1. VĂ©rifier les logs du webhook dans Gitea (ParamĂštres → Webhooks → Livraisons) +2. VĂ©rifier que Jenkins est accessible depuis le serveur Gitea +3. VĂ©rifier que le token correspond entre Jenkinsfile et l'URL du webhook +4. VĂ©rifier les logs Jenkins pour les erreurs + +### Le build dĂ©marre mais Ă©choue + +1. VĂ©rifier les credentials Docker registry +2. VĂ©rifier les permissions d'accĂšs au rĂ©pertoire de dĂ©ploiement +3. Consulter les logs dĂ©taillĂ©s du build dans Jenkins + +--- + +GĂ©nĂ©rĂ© avec [Claude Code](https://claude.com/claude-code) diff --git a/Jenkinsfile b/Jenkinsfile index d853fb4..5cf57e1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,11 +1,30 @@ pipeline { agent any + // DĂ©clenchement automatique sur push Git + triggers { + // VĂ©rifie les changements toutes les minutes (polling SCM) + pollSCM('* * * * *') + + // Ou utiliser un webhook Gitea (recommandĂ©) + // Le webhook doit ĂȘtre configurĂ© dans Gitea pour pointer vers: + // http://jenkins-url/gitea-webhook/post + GenericTrigger( + genericVariables: [ + [key: 'ref', value: '$.ref'] + ], + causeString: 'Triggered by Gitea push', + token: 'the-tip-top-frontend-token', + printContributedVariables: true, + printPostContent: true + ) + } + parameters { choice( name: 'ENV', choices: ['dev', 'preprod', 'prod'], - description: 'Choisir l’environnement de dĂ©ploiement' + description: 'Choisir l'environnement de dĂ©ploiement' ) }