Comment afficher la liste de tous les " env " des propriétés au sein de jenkins pipeline de travail?

Donné un jenkins 2.1 build pipeline, jenkins injecte une env variable dans le node{}. Par exemple, BRANCH_NAME peut être consulté avec

node {
    echo ${env.BRANCH_NAME}
    ...

Je veux echo tous env propriétés dans le jenkins pipeline.

Je suis à la recherche d'un code comme

node {
    for(e in env){
        echo e + " is " + ${e}
    }
    ...

qui fera écho à quelque chose comme

 BRANCH_NAME is myBranch2
 CHANGE_ID is 44
 ...
  • env est une carte. Avez-vous essayé normal itération? comme -- env.chaque{ println il }
  • Ressemble à une copie de stackoverflow.com/questions/36836806/...
  • essayez env.each { name, value -> println "Name: $name -> Value $value" }
  • Autant que je sache env juste encapsule les variables d'environnement. Je ne pense pas que vous pouvez faire une boucle à travers elle. Essayez "sh env' sur linux/ "chauve-souris set" sur windows.
  • par mon commentaire ci-dessous, env.each { name, value -> println "Name: $name -> Value $value" } imprime Name: org.jenkinsci.plugins.workflow.cps.EnvActionImpl@45c2d1ee -> Value null.
  • C'est à cause des bris de Pipeline Groovy fermetures. Si vous de droite old-style Java (qui est, new ClassName() { ... }), cela devrait fonctionner. Ou vous l'exécutez sur une méthode tagged @NonCPS, puis fermetures de travail à l'intérieur aussi.