webentwicklung-frage-antwort-db.com.de

Jenkins Multibranch-Pipeline: Wie lautet die Variable für den Filialnamen?

Ich bin neu im Jenkins-Pipeline-Plugin und besonders neu im Multibranch-Pipeline-Plugin. In einem Standardbuild habe ich Zugriff auf die Variable $ GIT_BRANCH, um zu wissen, welcher Zweig erstellt wird. Diese Variable ist jedoch nicht in der Multibranch-Pipeline festgelegt. Ich habe auch env.GIT_BRANCH ausprobiert und versucht, $ GIT_BRANCH als Parameter an den Build zu übergeben. Nichts scheint zu funktionieren. Ich bin davon ausgegangen, dass ich, da der Build über den zu erstellenden Zweig Bescheid weiß (ich kann den Zweignamen oben in der Konsolenausgabe sehen, dass ich etwas verwenden kann, ich kann einfach keinen Verweis darauf finden).

Hier ist ein Beispiel, warum dies wichtig ist. Wir verwenden ein Gitflow-Muster. Wir haben Entwicklungs-, Release- und Master-Zweige, die alle zum Erstellen von Artefakten verwendet werden. Der dev-Zweig wird automatisch bereitgestellt, die anderen beiden nicht. Es gibt auch Feature-, Bugfix- und Hotfix-Zweige. Diese Zweige sollten gebaut werden, aber kein Artefakt produzieren. Sie sollten nur verwendet werden, um den Entwickler zu informieren, wenn ein Problem mit ihrem Code vorliegt. Ich muss wissen, welcher Zweig erstellt wird, um die richtigen Schritte auszuführen.

Jede Hilfe wäre dankbar.

47

Das env.BRANCH_NAME Variable enthält den Filialnamen.

Ab Pipeline Groovy Plugin 2.18 können Sie auch einfach BRANCH_NAME (env ist nicht erforderlich, wird aber trotzdem akzeptiert.)

84

Zu diesem Zweck gibt es noch keine dedizierte Variable ( JENKINS-30252 ). In der Zwischenzeit können Sie ausnutzen, dass der Teilprojektname aus dem Filialnamen übernommen wird und verwenden

env.JOB_NAME.replaceFirst('.+/', '')

Dies wurde nun behoben, siehe Antwort von Krzysztof Krasoń .

10
Jesse Glick

Ich fand dieses Beispiel für einen Stackoverflow-Beitrag nützlich: Git-Variablen im Jenkins-Workflow-Plugin

sh '//...
    git rev-parse --abbrev-ref HEAD > GIT_BRANCH'
    git_branch = readFile('GIT_BRANCH').trim()
    echo git_branch
    //...
   '
0
jus4kikz