feat: add automatic deployment triggers to Jenkinsfile

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>
This commit is contained in:
soufiane 2025-11-18 15:19:02 +01:00
parent 34474cc275
commit d2e6894b77
2 changed files with 167 additions and 1 deletions

147
JENKINS_WEBHOOK_SETUP.md Normal file
View File

@ -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://<JENKINS_URL>/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 `<JENKINS_URL>` 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)

21
Jenkinsfile vendored
View File

@ -1,11 +1,30 @@
pipeline { pipeline {
agent any 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 { parameters {
choice( choice(
name: 'ENV', name: 'ENV',
choices: ['dev', 'preprod', 'prod'], choices: ['dev', 'preprod', 'prod'],
description: 'Choisir lenvironnement de déploiement' description: 'Choisir l'environnement de déploiement'
) )
} }