L'accès Groovy de la variable à l'intérieur de la coquille étape dans Jenkins pipeline

À l'aide de la Pipeline plugin Jenkins 2.x, comment puis-je accéder à un Groovy variable qui est définie quelque part, au stade ou un nœud au niveau de l'intérieur d'une sh étape?

Exemple Simple:

node {
    stage('Test Stage') {
        some_var = 'Hello World' //this is Groovy
        echo some_var //printing via Groovy works
        sh 'echo $some_var' //printing in shell does not work
    }
}

donne sur le Jenkins page de sortie:

[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test Stage)
[Pipeline] echo
Hello World
[Pipeline] sh
[test] Running shell script
+ echo

[Pipeline] }
[Pipeline] //stage
[Pipeline] }
[Pipeline] //node
[Pipeline] End of Pipeline
Finished: SUCCESS

Comme on peut le voir, echo dans le sh étape imprime une chaîne vide.

Un travail autour de serait de définir la variable dans l'environnement portée par

env.some_var = 'Hello World'

et l'imprimer via

sh 'echo ${env.some_var}'

Cependant, ce genre d'abus de la portée environnementale pour cette tâche.

Double Possible de What la différence de chaînes à l'intérieur de guillemets simples ou doubles en groovy?
Pas exactement un doublon, mais je pense que c'est une simple question de l'utilisation correcte des citations. Les exemples donnés dans la page que vous avez lié l'utilisation des guillemets: jenkins.io/doc/livre/pipeline/vue d'ensemble/...
En effet, je vous remercie pour cela. Devrait avoir regardé plus attentivement... lors de l'utilisation de guillemets, de l'interpolation fonctionne comme prévu. Vous pouvez ajouter ce que une réponse si vous le souhaitez.

OriginalL'auteur Dirk | 2016-10-11