Post Format

Экранирование симоволов в groovy (jenkins pipeline)

В задании Jenkins есть такое определение:

Возникает ошибка когда идет попытка выполнить echo «$PLAN»:

Происходит это из-за особенностей интерпретации кода в Jenkins. Для строк с двойными кавычками, groovy процессор будет преобразовывать строку первым. И только после преобразования переменных groovy, преобразованием переменных займется bash.

it, PLAN, CHANGES переменные среды исполнения (runtime variable) shell нежели переменные среды исполнения groovy. Groovy не может найти соответствующие переменные из стэка переменных для замены it, PLAN, CHANGES во время преобразования переменных.

Поэтому нужно экранировать все «$» если используется двойные кавычки в данном случае.

Или использовать одиночные кавычки, которые не используют преобразования:

https://stackoverflow.com/questions/51659231/groovy-escape-double-quoted/51662852

https://stackoverflow.com/questions/59171237/jenkins-script-console-can-i-use-jenkins-pipeline-dsl-in-script-console