2016-03-24 5 views
0

Ich bin mir bewusst, dass GitLab und Jenkins Integrationspunkte miteinander haben, aber aus Gründen, die ich nicht kontrollieren kann ich nicht beide verwenden.Build GitLab Zusammenführung Anfrage mit Jenkins

Es ist einfach, Parameter an einen Job zu übergeben, der ihm sagt, welcher Zweig, sogar welcher zu bauen ist. Ich kann es jedoch nicht an die richtige Konfiguration anpassen, wo es die Zusammenführungs-Anforderungsnummer erzeugt, die ich als Parameter übergebe.

Ich muss dies mit der Out-of-the-Box-Funktion "Git" in Jenkins tun. (Das GitLab-Merge-Request-Plugin kann nicht verwendet werden, da es das Abrufen des Repos erfordert.) Dieser Job muss manuell initiiert werden, und die Merge-Anforderungsnummer muss über den Parameter angegeben werden. Ich werde es auch nicht mit einem Webhook von GitLab auslösen. Diese Anforderung ist eine manuelle und bedarfsgesteuerte Erstellung einer bestimmten Zusammenführungsanforderung.

Ist es möglich, und ich vermisse nur etwas (nicht) offensichtlich?

Antwort

2

Also muss niemand sonst ertragen, sich das selbst auszudenken ... ja ... Jenkins kann eine GitLab-Zusammenführungsanforderung aus der Box erstellen, ohne verrückte Plugins.

In Jenkins, im Source Code Management Abschnitt auf Advanced, und stellen Sie die Refspec an:

+refs/merge-requests/*/head:refs/remotes/origin/merge-requests/* 

dann im Branch Specifier Feld, verwenden Sie diese:

origin/merge-requests/${MR} 

wobei $ {MR} ist ein Parameter, der an den Build übergeben wird - die Nummer der zu erhaltenden Mischanforderung.

+0

Das macht sehr viel Sinn, aber wie bekommt man den $ {MR} -Wert vom Webhook? Der Webhook wird mit einem Anfragetext veröffentlicht, aber wie erhalten Sie Werte in Jenkins? – miguelr

+0

@miguelr haben Sie eine Lösung für dieses Problem gefunden? Ich habe das gleiche Problem jetzt – codereal

+0

@ codereal Ich habe diesen Leitfaden erfolgreich gefolgt https://github.com/KostyaSha/github-integration-plugin/blob/master/docs/Configuration.adoc – miguelr