Дженкинс: передача пользовательских переменных в плагин Email-Ext - PullRequest
0 голосов
/ 28 мая 2020

Я использую плагин Email-Ext для отправки электронного письма с результатами в конце моей сборки на этапе пост-сборки декларативного конвейера. В теле письма я пытаюсь вставить некоторые переменные среды и некоторые переменные среды, определенные пользователем.

Встроенные переменные отображаются нормально, однако любые определенные пользователем переменные, которые я определяю, просто пусты в теле письма или не работают в поле attachmentPattern либо:

Мои переменные среды :

pipeline {
    agent any
    environment {
        buildFolder = "build_${BUILD_NUMBER}" 
        robotFolder = "build_${BUILD_NUMBER}/robotDemo" 
        serverName = "abc123"
        robotResults = "${buildFolder}/*.txt"
    }

Формат e-mail-ext, который я использую в своем посте {} build:

<code>emailext attachLog: true, attachmentsPattern: 'build_${env.BUILD_NUMBER}/Robot_Results.txt', body: '<b>Job Name:</b> ${ENV, var="JOB_NAME"}<br><b>Build Number:</b> ${ENV, var="BUILD_NUMBER"}<br><br><b>Build URL:</b><br>${ENV, var="BUILD_URL"}<br><br><b>Log Files:<br><br><br><pre>${BUILD_LOG_EXCERPT, start="^====", end="^report.html"}
${ENV, var="serverName"}
', mimeType:' text / html ', тема:' ABS Результаты ', на:' richard. scott@sap.com '

Например: $ {ENV, var = "JOB_NAME"}, отображается нормально. Однако $ {ENV, var = "serverName"} вообще не отображается.

Я пробовал такие варианты, как ...

$ {serverName}
$ {env.serverName}

... но они тоже не работают.

Есть идеи, как использовать определенные пользователем переменные среды, такие как serverName выше, в подключаемом модуле email-ext?

С уважением и уважением, Ричард.

1 Ответ

0 голосов
/ 29 мая 2020

Вы используете одинарные кавычки, но только двойные кавычки позволяют интерполировать переменные.

Я бы посоветовал вам использовать Groovy скрипт для рендеринга содержимого электронной почты.

Вы можно использовать предопределенный Groovy сценарий , например:

emailext body: '''${SCRIPT, template="groovy-html.template"}'''

, или добавить свой собственный шаблон , как описано в документации . Я не мог понять, можно ли загрузить этот шаблон из рабочей области, но вы можете попробовать это с:

emailext body: '''${SCRIPT, template="$WORKSPACE/groovy-html.template"}'''

Синтаксис для получения значений из среды или параметров при интерполяции:

${env.MY_ENVVAR}
${param.MY_BUILDPARAM}

(env и param ja Groovy карта, содержащая все значения)

И для всех остальных переменных:

${varName}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...