web-dev-qa-db-fra.com

Comment déclencher un pipeline multi-branches Jenkins avec Gitlab Webhook

Je configure actuellement un travail Jenkins Multi-Branch Pipeline basé sur un référentiel Git hébergé sur notre serveur Gitlab. Jenkins peut lire les branches du référentiel et crée un travail pour chaque branche du référentiel. Mais je n'arrive pas à comprendre comment déclencher les jobs avec des Webhooks dans Gitlab.

Mes questions sont:

  1. Comment puis-je déclencher la création d'un nouveau travail de branche dans Jenkins à partir de notre serveur Gitlab? Je ne vois pas de lien Web pour une nouvelle branche.

  2. Comment est-ce que je déclenche le travail de construction réel pour une seule branche? Je peux seulement ajouter un Webhook pour les événements Push, mais je devrais alors ajouter le nom de la branche, ce que je ne sais pas comment faire.

  3. Comment puis-je m'assurer que Gitlab déclenche toujours la "création du travail de branche" avant qu'un envoi Push vers une branche ne déclenche le travail de construction lui-même.

Ce que j’ai essayé jusqu’à présent, c’est de déclencher le travail multi-branches, mais cela n’a aucun effet et après ce post ne fonctionne pas du tout.

16
Michael Lihs

Vous devez installer Gitlab Plugin sur Jenkins. 

Cela ajoutera un point final /project sur Jenkins. (Voir dans Jenkins => Administrer Jenkins => Configurer le système => Gitlab) 

Ajoutez maintenant un Webhook sur votre projet Gitlab => Paramètres => Intégrations. (ou dans l'ancienne version de Gitlab: projet Gitlab => icône de la roue => intégrations, il semble que vous deviez être propriétaire du projet dans ce cas)

Dans Url: définissez http://*yourjenkins.com*/**project**(/*foldername*)?/*yourprojectname* et c'est tout, puis cliquez sur "Ajouter un crochet Web". 

Lorsque vous cliquez sur test sur votre crochet Web, cela devrait déclencher la construction de votre pipeline jenkins. (Vous devriez avoir une réponse de 200 http)

Cela fonctionne sans authentification dans le plugin Gitlab, la configuration avec authentification est la bienvenue.

8
Antoine

J'ai le même problème. Avec la configuration décrite par la réponse d'Antoine. Quand je clique sur test sur gitlab webhook malgré que j'obtienne 200 réponses, cela ne déclenche pas la construction du pipeline jenkins. 

Lorsque je fais un commit, cela déclenche le travail.

1
andolsi zied