Pipeline multibranch de Jenkins: Quelle est la variable de nom de branche?

je suis nouveau pour le plugin de Pipeline Jenkins, et surtout nouveau pour le plugin de pipeline multibranch. Dans une construction standard, j'ai accès à la variable $GIT_BRANCH pour savoir quelle branche est construite. Cependant, cette variable n'est pas définie dans le pipeline multibranch. J'ai essayé env.GIT_BRANCH aussi, et j'ai essayé de passer $GIT_BRANCH comme paramètre à la compilation. Rien ne semble fonctionner. J'ai supposé que puisque la construction est au courant de la branche en cours de construction (je peux voir le nom de la branche en haut de la sortie de la console, qu'il y a quelque chose que je peux utiliser, Je ne trouve juste aucune référence à elle.

Voici un exemple de pourquoi c'est important. Nous utilisons un modèle de gitflow. Nous avons dev, release et master branches qui sont tous utilisés pour créer des artéfacts. La branche dev se déploie automatiquement, les deux autres non. Il y a aussi des branches feature, bugfix et hotfix. Ces branches devraient être construites, mais pas produire un artefact. Ils devraient seulement être utilisés pour informer le développeur si il y a un problème avec leur code. J'ai besoin de savoir quelle branche est construite afin d'exécuter les étapes correctes.

Toute aide serait appréciée.

35
demandé sur metalisticpain 2015-09-25 22:48:38

3 réponses

la variable env.BRANCH_NAME contient le nom de la succursale.

à partir de pipeline Groovy Plugin 2.18 , vous pouvez également juste utiliser BRANCH_NAME ( env n'est pas nécessaire, mais encore acceptées.)

63
répondu Krzysztof Krasoń 2017-01-19 02:05:12

il n'existe pas encore de variable spécifique à cet effet ( JENKINS-30252 ). En attendant, vous pouvez profiter du fait que le sous-projet nom est tiré du nom de la branche, et l'utilisation

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

Ceci est maintenant résolu, voir réponse de Krzysztof Krasoń .

10
répondu Jesse Glick 2017-05-23 12:02:39

j'ai trouvé cet exemple de post stackoverflow utile: Git Variables in Jenkins Workflow plugin

sh '//...
    git rev-parse --abbrev-ref HEAD > GIT_BRANCH'
    git_branch = readFile('GIT_BRANCH').trim()
    echo git_branch
    //...
   '
0
répondu jus4kikz 2017-05-23 11:54:54