web-dev-qa-db-fra.com

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

Je suis nouveau dans le plug-in Jenkins Pipeline, et particulièrement nouveau dans le plug-in de pipeline multibranches. Dans une version standard, j'ai accès à la variable $ GIT_BRANCH pour savoir quelle branche est en construction. Cependant, cette variable n'est pas définie dans le pipeline multibranches. J'ai aussi essayé env.GIT_BRANCH et j'ai essayé de passer $ GIT_BRANCH en tant que paramètre de la construction. Rien ne semble fonctionner. J'ai supposé que, puisque la construction connaissait la branche en cours de construction (je peux voir le nom de la branche en haut de la sortie de la console, il y a quelque chose que je peux utiliser, je ne trouve aucune référence à celle-ci.

Voici un exemple de pourquoi c'est important. Nous utilisons un modèle gitflow. Nous avons des branches dev, release et master qui sont toutes utilisées pour créer des artefacts. La branche dev se déploie automatiquement, les deux autres ne le font pas. Il existe également des branches de fonctionnalités, correctifs et correctifs. Ces branches doivent être construites mais ne doivent pas produire d’artefact. Ils devraient juste être utilisés pour informer le développeur s'il y a un problème avec leur code. J'ai besoin de savoir quelle branche est en construction pour pouvoir exécuter les étapes correctes.

Toute aide serait appréciée.

47
Christian Rigdon

Le env.BRANCH_NAME variable contient le nom de la branche.

À partir de Pipeline Groovy Plugin 2.18 , vous pouvez également utiliser simplement BRANCH_NAME _ (env n'est pas obligatoire mais toujours accepté.)

84

Il n'y a pas encore de variable dédiée à cet effet ( JENKINS-30252 ). En attendant, vous pouvez tirer parti du fait que le nom du sous-projet provient du nom de la branche et utiliser

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

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

10
Jesse Glick

J'ai trouvé cet exemple de publication stackoverflow utile: Variables Git dans le plugin Jenkins Workflow

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