Ich verwende die aktuelle Version des Git-Plugins (SCM-Provider und Publisher) auf Jenkins 1.500. Das SCM-Polling funktioniert gut, indem ich meine git-HTTP-URL und die Einstellung "Zweige zum Erstellen" von "feature- *" verwende. Dadurch werden Änderungen an jedem Zweig erfasst, z. B. "Feature-1234", die Build- / Test- / Coverage-Aufgaben werden ausgeführt und es wird über Erfolg oder Fehlschlag berichtet. All dies funktioniert gut, einschließlich einer Zusammenführung aus dem Integrationszweig, in der der Code nach einer erfolgreichen Build- und Codeüberprüfung enden sollte.
Das Problem besteht darin, den fertigen Erstellungszweig ZURÜCK in den gleichen Zweig "feature-1234" zu verschieben. Die Erstellungsvariable "GIT_BRANCH" enthält in diesem Fall "origin / feature-1234", was nach einem ansonsten erfolgreichen Build folgenden Fehler und Fehler im Git Publisher erzeugt:
%Vor%Sehen Sie den zusätzlichen "Ursprung" dort? origin / feature-1234 & lt; == das ist der aktuelle Wert von $ {GIT_BRANCH}, und obwohl ich weiß, dass es ein entfernter Zweig ist, hindert es mich daran, den Prozess auszuführen, dem wir folgen wollen / p>
Wenn ich etwas Einfaches vermisse, würde ich es gerne hören. Aber ich habe viele verschiedene Einstellungen für die verschiedenen git-bezogenen Teile meines Builds ausprobiert und nichts scheint mir zu erlauben, den zusammengeführten und getesteten Code zurück in den Arbeitszweig zu übertragen (im Gegensatz zum Integrationszweig, der einfach zu machen ist) / p>
In der Erstellungskonfiguration "Quellcodeverwaltung" = & gt; Vorrücken Es gibt ein Feld "Name" Sie müssen die ID des Repositorys angeben und sie dann im git-Publisher-Plugin verwenden: "Zielfernname"
Diese beiden Namen müssen identisch sein schaue auf die "?" - um mehr Informationen zu bekommen
Ich drücke Änderungen von Hand. Sie können die Windows-Umgebungsvariable wie folgt in Batch-Skripts verwenden:
Dies ergibt z. 'git checkout feature-1234'
%Vor%Dies ergibt z. 'git push origin feature-1234'
%Vor% Sie können auch etwas ähnliches mit Token-Makros wie ${GIT_BRANCH##origin/}
und ${GIT_BRANCH#*/}
tun. Diese funktionieren in einigen Jenkins-Plugins, aber nicht in allen, daher funktioniert es möglicherweise nicht im Git-Publisher.
Ich empfehle, voll qualifizierte /refs/remotes/origin/feature-1234
als Git "Branch to build" zu konfigurieren. So erscheint es mir verständlicher.
In diesem Fall würde Ihr $ GIT_BRANCH von Jenkins magisch auf origin/feature-1234
gesetzt werden, wie Sie es beobachtet haben.
Fügen Sie dann anstelle des übermäßig komplizierten (aber portablen) GitPublisher einen Post-Build-Schritt "Shell ausführen" hinzu:
%Vor%