web-dev-qa-db-fra.com

Passage d'une variable du script Shell à Jenkins

Je déclenche un script Shell à partir de Jenkins. Ce script obtient la date et l’exporte sous la forme d’une variable d’environnement (Linux) $ DATE. Je dois utiliser cette $ DATE dans le même travail Jenkins. J'ai fait le travail en tant que paramètre de construction. Création d'un paramètre de chaîne sous forme de valeur DATE sous la forme DATE = $ DATE. Mais ça ne fonctionne pas.

Veuillez suggérer !!

33
user3232823

Vous dites que vous exportez une variable d'environnement DATE dans un script Shell, qui est probablement démarré via une étape "Exécuter Shell".

Le problème est que, une fois l’étape Shell terminée, cet environnement a disparu - les variables ne seront pas reportées aux étapes de construction suivantes.
Ainsi, lorsque vous tenterez plus tard d'utiliser le $DATE valeur - que ce soit dans une autre étape de construction ou en tant que paramètre d'un autre travail - cette variable d'environnement particulière n'existera plus.

Vous pouvez plutôt utiliser le plug-in EnvInject pour exporter les variables d'environnement pendant une construction. Les variables configurées à l'aide de ce plugin seront disponibles pour toutes les étapes de construction ultérieures.

Par exemple, vous pouvez écrire le DATE dans un champ de propriétés en une étape de construction:

echo DATE=$(date +%Y-%m-%d) > env.properties

Ensuite, vous pouvez ajouter une étape de construction "Injecter les variables d’environnement pour votre travail" et saisir env.properties dans le champ "Chemin d'accès au fichier de propriétés d'environnement".

De cette façon, la variable DATE (ainsi que tout ce qui se trouve dans ce fichier de propriétés) sera exportée et sera visible pour le reste des étapes de la construction.

76
Christopher Orr