web-dev-qa-db-fra.com

Comment définir des variables dans un script multi-lignes au sein de Jenkins Groovy?

Supposons que j’ai un script Groovy dans Jenkins contenant un script Shell multiligne. Comment définir et utiliser une variable dans ce script? La manière normale produit une erreur:

sh """
    foo='bar'
    echo $foo
"""

Pris: groovy.lang.MissingPropertyException: Aucune propriété de ce type: foo pour la classe: groovy.lang.Binding

45
Fo.

Vous devez changer pour tripler les guillemets simples ''' ou échapper au dollar \$

Ensuite, vous éviterez les modèles groovy qui vous donnent ce problème.

81
tim_yates

Je ne fais que mettre un '\' en fin de ligne

sh script: """\
  foo='bar' \
  echo $foo \
""", returnStdout: true

Cette déclaration fonctionne sur mon script.

10
bpedroso