Configure Jenkins pipeline to trigger automatically on git push: - Add pollSCM trigger (checks every minute) - Add Generic Webhook trigger for Gitea integration - Add comprehensive webhook setup documentation This enables CI/CD automation where the pipeline starts automatically when code is pushed to the repository. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
4.6 KiB
Configuration du Webhook Jenkins pour Auto-déploiement (Backend)
📋 Vue d'ensemble
Le Jenkinsfile a été configuré avec deux méthodes de déclenchement automatique :
- Polling SCM (Simple mais moins efficace)
- 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
-
Accéder aux paramètres du dépôt :
- Aller sur :
https://gitea.wk-archi-o24a-15m-g3.fr/wkadmin/the-tip-top-backend - Cliquer sur Paramètres (Settings) → Webhooks
- Aller sur :
-
Créer un nouveau webhook :
- Cliquer sur Ajouter un Webhook → Gitea
- Remplir les champs suivants :
URL cible : http://<JENKINS_URL>/generic-webhook-trigger/invoke?token=the-tip-top-backend-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 -
Remplacer
<JENKINS_URL>par :- L'URL de votre serveur Jenkins (ex:
jenkins.wk-archi-o24a-15m-g3.fr)
- L'URL de votre serveur Jenkins (ex:
-
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-backend-token dans le Jenkinsfile protège le webhook contre les déclenchements non autorisés.
Pour changer le token :
- Modifier la ligne dans
Jenkinsfile:token: 'votre-nouveau-token-secret' - Mettre à jour l'URL du webhook dans Gitea
🧪 Tester le déclenchement automatique
-
Faire un commit et push :
git add . git commit -m "test: trigger auto deployment" git push origin dev -
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 :
- Jenkins → Manage Jenkins → Manage Plugins
- Onglet "Available" → Rechercher "Generic Webhook Trigger"
- 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
⚡ Étapes de déploiement automatique
Lorsqu'un push est détecté, le pipeline exécute automatiquement :
- Init - Détection de l'environnement (dev/preprod/prod)
- Checkout - Récupération du code
- Tests & Qualité - Linting et tests unitaires
- Build Docker - Construction de l'image Docker
- Push Registry - Envoi vers le registre Docker
- Backup - Sauvegarde de l'environnement actuel
- Deploy - Déploiement de la nouvelle version
❓ Troubleshooting
Le webhook ne se déclenche pas
- Vérifier les logs du webhook dans Gitea (Paramètres → Webhooks → Livraisons)
- Vérifier que Jenkins est accessible depuis le serveur Gitea
- Vérifier que le token correspond entre Jenkinsfile et l'URL du webhook
- Vérifier les logs Jenkins pour les erreurs
Le build démarre mais échoue
- Vérifier les credentials Docker registry
- Vérifier les permissions d'accès au répertoire de déploiement
- Vérifier la connexion à la base de données
- Consulter les logs détaillés du build dans Jenkins
La base de données n'est pas accessible
Si vous voyez l'erreur connect ETIMEDOUT 51.75.24.29:5433 :
- Vérifier que PostgreSQL est démarré sur le serveur
- Vérifier les règles de firewall (port 5433)
- Vérifier les credentials dans le fichier
.env
Généré avec Claude Code