2016-08-12 5 views
0

У меня есть список адреса электронных идентификаторов в переменном окружении Дженкинс (emailsdl) и пытается использовать это для recipients: в Дженкинс Pipeline Мейлер, как показано ниже:Использования переменного окружения для «получателей:» в Дженкинс Pipeline Mailer

mail (to: 'Mailer', recipients: '${env.emailsdl}', 
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input", 
body: "Please go to ${env.BUILD_URL}.") 

с выше кодой я не получаю электронную почту и получаю сообщение об ошибке:

Email not sent. No recipients of any kind specified ('to', 'cc', 'bcc').

Но когда я заменяю ${env.emailsdl} с реальной электронной почтой (x[email protected]), то это вызовет по электронной почте. Я даже попробовал env['emailsdl'], и он не сработал.

Есть ли способ передать переменную среды для получателей в этом случае?

+0

Если вы добавляете строку 'echo env.emailsdl' в скрипт, то выводит правильное значение? –

+0

@Gergely: Ваше предложение помогло мне решить мою проблему. Проблема в том, что у меня есть локальная переменная среды, которой присваивается значение из другой глобальной переменной окружения: 'globalVar = xyxyx @ foo.com' и' emailsdl = $ {globalVar} 'находятся в локальных свойствах задания. Теперь я называю это 'emailsdl' в сценарии конвейера. Это было разрешено: 'env. ((Env.emailsdl) .replaceAll (" \ $ "," "))'. – rkkreddy

ответ

0

@Gergely: Ваше предложение помогло мне решить мою проблему. Проблема в том, что у меня есть переменная локальной среды, которая была назначена значением из другой глобальной переменной окружения: globalVar = [email protected] и emailsdl=${globalVar} находятся в локальных свойствах работы. Теперь я вызываю это emailsdl в сценарии конвейера. Это было решено:

env.((env.emailsdl).replaceAll("\$", "")) 
+0

Не могли бы вы принять свой ответ, чтобы этот вопрос не остался без ответа? –

1

В groovy, если вы используете одинарную кавычную строку, он не будет интерполирован, а это означает, что int string '${env.emailsdl}' переменная env.emailsdl не будет заменена. Вам нужно использовать строку с двойными кавычками: "${env.emailsdl}"

Смежные вопросы