Дженкинс: как установить содержимое тела из переменной - PullRequest
0 голосов
/ 15 мая 2018

У меня есть сценарий конвейера. В одном из моих шагов я хочу отправлять разные письма на основе результатов теста. Вот как я это делаю сейчас:

if (buildResult == 'SUCESSS' 
    def email_body="TEST_SUCESS.template"
else
    def email_body="TEST_FAILURES.template"

    emailext(
            subject:  "Job '${env.JOB_NAME} [${env.BUILD_NUMBER}] finished",
            body: "${SCRIPT,template=$email_body}", // LINE A
            recipientProviders: [[$class: 'DevelopersRecipientProvider']],
            to: 'XXXX',
            from: 'YYYY',
            replyTo: 'ZZZZ',
            mimeType: 'text/html',
)

Я не могу, чтобы Дженкинс раскрыл значение переменной email_body . Я пробовал различные подходы в строке A:

  1. "$ {SCRIPT, шаблон = $ email_body}"
  2. "$ {SCRIPT, шаблон = $ {email_body}}"
  3. '' '$ {SCRIPT, шаблон = $ email_body}' ''
  4. '' '$ {SCRIPT, шаблон = $ {email_body}}' ''

Ни один из них не работает. Все, что я получаю по электронной почте, это либо:

Файл шаблона Groovy [$ email_body] не найден в $ JENKINS_HOME / email-templates.

или

$ {SCRIPT, шаблон = $ email_body}.

Как правильно настроить содержимое электронной почты, если содержимое электронной почты хранится в переменной?

1 Ответ

0 голосов
/ 15 мая 2018

Попробуйте использовать этот пример:

String subject = "${env.JOB_NAME} was " + currentBuild.result.toString();
String email_body="TEST_" + currentBuild.result.toString() + ".template"
String body = "SCRIPT,template=" + email_body;
String to="some_mail@mail.com" 
String reply="ZZZ"
emailext(subject: subject, body: body, to: to, replyTo: reply);
...