39 votes

Variable d'environnement dans Jenkins Pipeline

Y a-t-il une variable d'environnement disponible pour obtenir le titre de Jenkins Pipeline ?

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

0 votes

Vous pouvez jeter un coup d'œil à cette réponse si vous voulez voir les variables qui sont disponibles dans votre pipeline. stackoverflow.com/a/42138466/1238300

50voto

badgerr Points 4070

Vous pouvez accéder aux mêmes variables d'environnement à partir de groovy en utilisant les mêmes noms (par ex. JOB_NAME o env.JOB_NAME ).

Dans la documentation :

Les variables d'environnement sont accessibles depuis le code Groovy sous la forme env.VARNAME ou simplement 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 constructions Pipeline en amont en utilisant l'étape de construction.

Pour le reste de la documentation, cliquez sur le lien "Syntaxe Pipeline" à partir de n'importe quel travail Pipeline. enter image description here

0 votes

Merci, j'ai utilisé env.MyVariable et cela fonctionne dans mon cas, maintenant je peux définir les variables d'environnement à partir du pipeline. Merci de m'avoir fait gagner du temps.

42voto

sorin Points 23747

Pour éviter les problèmes d'effets secondaires après le changement env Si l'on utilise 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 l'environnement après l'exécution de la commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X