web-dev-qa-db-fra.com

Variable d'environnement dans le pipeline Jenkins

Existe-t-il une variable d'environnement disponible pour obtenir le titre de pipeline Jenkins?

Je sais que nous pouvons utiliser $JOB_NAME pour obtenir le titre d'un travail en style libre, mais y a-t-il quelque chose qui peut être utilisé pour obtenir le nom de Pipeline?

34
Akki

Vous pouvez accéder aux mêmes variables d’environnement à partir de groovy en utilisant les mêmes noms (par exemple, JOB_NAME ou env.JOB_NAME).

De la documentation:

Les variables d'environnement sont accessibles à partir du code Groovy sous la forme env.VARNAME ou simplement sous le nom VARNAME. Vous pouvez également écrire dans ces propriétés (en utilisant uniquement le préfixe env.):

env.MYTOOL_VERSION = '1.33'
node {
  sh '/usr/local/mytool-$MYTOOL_VERSION/bin/start'
}

Ces définitions seront également disponibles via l'API REST pendant la construction ou après son achèvement, et à partir des versions de Pipeline en amont utilisant l'étape de construction.

Pour le reste de la documentation, cliquez sur le lien "Syntaxe de pipeline" de n’importe quel travail de pipeline enter image description here

48
badgerr

Pour éviter les problèmes d’effets secondaires après la modification de env, en particulier lors de l’utilisation de plusieurs nœuds, il est préférable de définir un contexte temporaire.

Un moyen sûr de modifier l'environnement est:

 withEnv(['MYTOOL_HOME=/usr/local/mytool']) {
    sh '$MYTOOL_HOME/bin/start'
 }

Cette approche n'empoisonne pas env après l'exécution de la commande.

38
sorin