it-swarm.com.de

So lösen Sie Jenkins Multi-Branch-Pipeline mit Gitlab Webhook aus

Derzeit habe ich einen Jenkins-Multi-Branch-Pipeline-Job eingerichtet, der auf einem Git-Repository basiert, das auf unserem Gitlab-Server gehostet wird. Jenkins kann die Zweige im Repository lesen und erstellt für jeden Zweig im Repository einen Job. Ich kann jedoch nicht herausfinden, wie die Jobs mit Webhooks in Gitlab ausgelöst werden.

Meine Fragen sind:

  1. Wie kann ich in Jenkins von unserem Gitlab-Server das Erstellen eines neuen Zweigjobs auslösen? Ich kann keinen Webhook für einen neuen Zweig sehen, der gepusht wird.

  2. Wie kann ich den eigentlichen Build-Job auslösen für einen einzelnen Zweig auslösen? Ich kann nur einen Webhook für Push-Ereignisse hinzufügen, aber dann müsste ich den Namen der Niederlassung hinzufügen, den ich nicht kennen kann.

  3. Wie kann ich sicherstellen, dass Gitlab immer die "Erstellung des Verzweigungsjobs" auslöst, bevor ein Push an einen Zweig den Buildjob selbst auslöst.

Was ich bisher ausprobiert habe, ist das Auslösen des Multi-Branch-Jobs, aber dies hat keine Auswirkung und folgende dieser Beitrag funktioniert überhaupt nicht.

16
Michael Lihs

Sie müssen Gitlab Plugin auf Jenkins installieren. 

Dadurch wird ein Endpunkt von /project zu Jenkins hinzugefügt. (Siehe in Jenkins => Jenkins verwalten => System konfigurieren => Gitlab) 

Fügen Sie nun einen Webhook in Ihr Gitlab-Projekt ein => Einstellungen => Integrationen. (oder in älterer Gitlab-Version: Gitlab-Projekt => Radsymbol => Integrationen, in diesem Fall müssen Sie der Eigentümer des Projekts sein)

In Url: set http://*yourjenkins.com*/**project**(/*foldername*)?/*yourprojectname* und das ist alles, und klicken Sie auf "Add Webhook". 

Wenn Sie in Ihrem Webhook auf test klicken, sollte der Jenkins-Pipeline-Build ausgelöst werden. (Sie sollten eine Antwort von 200 http haben)

Es funktioniert ohne Authentifizierung im Gitlab Plugin, Konfiguration mit Authentifizierung ist erwünscht.

8
Antoine

Ich habe das gleiche Problem. Mit der in der Antwort von Antoine beschriebenen Konfiguration. Wenn ich auf Test auf gitlab webhook klicke, obwohl ich 200 Antwort bekomme, wird der jenkins-Pipeline-Build nicht ausgelöst. 

Wenn ich ein Commit mache, löst es den Job aus.

1
andolsi zied