# 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)
