web-dev-qa-db-fra.com

Comment définir une variable d'environnement par programmation dans Jenkins / Hudson?

J'ai deux scripts dans l'étape de pré-construction dans un travail Jenkins, le premier un script Perl, le second un script groovy système utilisant le plugin groovy. J'ai besoin d'informations du premier script Perl dans mon deuxième script groovy. Je pense que la meilleure façon serait de définir une variable d'environnement, et je me demandais comment cela peut être réalisé.

Ou tout autre meilleur moyen.

Merci pour votre temps.

15
Gogi

La manière de propager les variables d'environnement entre les étapes de construction est via EnvInject Plugin .

Voici quelques réponses précédentes qui montrent comment procéder:

Dans votre cas, cependant, il peut être plus simple d'écrire dans un fichier dans une étape de génération et de lire ce fichier dans une autre. Pour vous assurer de ne pas lire accidentellement à partir d'une version précédente du fichier, vous pouvez incorporer BUILD_ID dans le nom du fichier.

14
malenkiy_scot

En utilisant EnvInject Plugin à partir de la configuration du travail, vous devez utiliser Inject environment variables to the build process / Evaluated Groovy script.

Selon la configuration, vous pouvez exécuter la commande Groovy ou Shell et l'enregistrer dans une carte contenant des variables d'environnement:

Exemple

En obtenant le résultat de la commande avec la méthode execute:

return [DATE: 'date'.execute().text]

ou avec Groovy équivalent s'il en existe un:

return [DATE: new Date()]
3
luka5z