From c92d2c32e92ea28e7af757daa0426cfe01018997 Mon Sep 17 00:00:00 2001 From: soufiane Date: Tue, 18 Nov 2025 16:08:28 +0100 Subject: [PATCH] fix: simplify Jenkins triggers to use only pollSCM + add setup docs --- JENKINS_AUTO_TRIGGER_SETUP.md | 95 +++++++++++++++++++++++++++++++++++ Jenkinsfile | 13 ----- package-lock.json | 1 + 3 files changed, 96 insertions(+), 13 deletions(-) create mode 100644 JENKINS_AUTO_TRIGGER_SETUP.md diff --git a/JENKINS_AUTO_TRIGGER_SETUP.md b/JENKINS_AUTO_TRIGGER_SETUP.md new file mode 100644 index 00000000..8823bcb1 --- /dev/null +++ b/JENKINS_AUTO_TRIGGER_SETUP.md @@ -0,0 +1,95 @@ +# Configuration du Declenchement Automatique Jenkins + +## Probleme Actuel +Le pipeline Jenkins ne se lance pas automatiquement apres un push Git. + +## Solutions Possibles + +### Solution 1: Verifier le Plugin Generic Webhook Trigger + +1. Aller dans Jenkins > Manage Jenkins > Manage Plugins +2. Chercher "Generic Webhook Trigger Plugin" +3. Si pas installe, l'installer et redemarrer Jenkins + +### Solution 2: Configuration du Webhook dans Gitea + +#### Etape 1: Creer le webhook dans Gitea +1. Aller sur https://gitea.wk-archi-o24a-15m-g3.fr/wkadmin/the-tip-top-backend +2. Settings > Webhooks > Add Webhook > Gitea +3. Configurer: + - **Target URL**: `http://jenkins-url/generic-webhook-trigger/invoke?token=the-tip-top-backend-token` + - **HTTP Method**: POST + - **POST Content Type**: application/json + - **Secret**: (laisser vide) + - **Trigger On**: Push events + - **Branch filter**: `dev` (ou `*` pour toutes les branches) + - **Active**: Coche + +4. Cliquer sur "Add Webhook" + +#### Etape 2: Tester le webhook +1. Faire un commit et push +2. Dans Gitea, aller dans Settings > Webhooks +3. Cliquer sur le webhook cree +4. Scroller vers le bas pour voir "Recent Deliveries" +5. Verifier que la reponse est 200 OK + +### Solution 3: Verifier la Configuration SCM dans Jenkins + +1. Aller dans le job Jenkins: `the-tip-top-backend` +2. Configure > Build Triggers +3. Verifier que "Poll SCM" est coche avec: `* * * * *` +4. Verifier que "Generic Webhook Trigger" est configure + +### Solution 4: Forcer un Scan Manuel (Temporaire) + +En attendant que le webhook fonctionne: +1. Aller dans le job Jenkins +2. Cliquer sur "Build with Parameters" +3. Choisir ENV = dev +4. Cliquer sur "Build" + +### Solution 5: Utiliser un Simple Webhook au lieu de Generic Webhook + +Si le plugin Generic Webhook Trigger pose probleme, modifier le Jenkinsfile: + +```groovy +triggers { + // Polling SCM toutes les minutes + pollSCM('* * * * *') + + // OU utiliser le trigger Gitea (plus simple) + // Pas besoin de plugin supplementaire +} + +properties([ + pipelineTriggers([ + [$class: 'GitHubPushTrigger'] + ]) +]) +``` + +Puis dans Gitea webhook, utiliser: +- **Target URL**: `http://jenkins-url/git/notifyCommit?url=https://gitea.wk-archi-o24a-15m-g3.fr/wkadmin/the-tip-top-backend.git` + +## Verification + +Pour verifier que le trigger fonctionne: + +1. Faire un petit changement (ex: ajouter un commentaire dans README.md) +2. Commit et push +3. Attendre 1 minute maximum +4. Verifier dans Jenkins si un nouveau build demarre + +## Logs de Debug + +Si le probleme persiste, verifier les logs Jenkins: +1. Jenkins > Manage Jenkins > System Log +2. Chercher les erreurs liees a "SCM" ou "webhook" + +## Contact + +Si aucune solution ne fonctionne: +- Verifier que Jenkins a acces au repo Git (credentials) +- Verifier les firewalls entre Gitea et Jenkins +- Verifier que l'URL du webhook est accessible depuis Gitea diff --git a/Jenkinsfile b/Jenkinsfile index bdfd1951..41f2e262 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,19 +5,6 @@ pipeline { 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/generic-webhook-trigger/invoke?token=the-tip-top-backend-token - GenericTrigger( - genericVariables: [ - [key: 'ref', value: '$.ref'] - ], - causeString: 'Triggered by Gitea push', - token: 'the-tip-top-backend-token', - printContributedVariables: true, - printPostContent: true - ) } parameters { diff --git a/package-lock.json b/package-lock.json index 14250223..c188c370 100755 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "zod": "^4.1.12" }, "devDependencies": { + "@eslint/js": "^9.39.0", "eslint": "^9.39.0", "jest": "^30.2.0", "nodemon": "^3.1.10",