Шаблон письма Jenkins (groovy) с пользовательской переменной всегда печатается в письме - PullRequest
0 голосов
/ 20 сентября 2018

Мы используем плагин email-ext в сочетании с Jenkins-pipeline для отправки писем (шаблон на основе groovy).Дженкинс выполняет несколько заданий (все эти задания отправляют электронные письма при сбое), а для некоторых заданий требуется дополнительная информация в электронном письме.Для некоторых заданий эта информация не нужна, и поэтому эта строка пользовательских переменных не должна присутствовать.В работах, где эта строка не нужна, мы не определили эту пользовательскую переменную.

С оператором if в шаблоне электронной почты groovy мы видим, что эта пользовательская переменная всегда присутствует в электронной почте.

<%
def envOverrides = it.getAction('org.jenkinsci.plugins.workflow.cps.EnvActionImpl').getOverriddenEnvironment()
if (${envOverrides["custom1"]} != null) { %>
<tr>
    <td><b>Custom variable:</b></td>
    <td>${envOverrides["custom1"]}</td>
</tr>
<% } %>

В jenkinsfile этот пользовательский var определен для некоторых подобных случаев (и отсутствует в заданиях, где это не нужно):

env.custom1 = "dummy_value"

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

Custom variable: dummy_value

И если пользовательский var равен not , установите его так:

Custom variable: null

Ожидается, что эта строка отсутствует в электронном письме.Что мы делаем не так?Есть предложения?

1 Ответ

0 голосов
/ 23 сентября 2018

Как только я узнал, что envOverrides возвращает карту, решение было принято быстро:

<%
def envOverrides = it.getAction('org.jenkinsci.plugins.workflow.cps.EnvActionImpl').getOverriddenEnvironment()
if (envOverrides.containsKey('custom1') && "${envOverrides['custom1']} != '') { %>
<tr>
    <td><b>Custom variable:</b></td>
    <td>${envOverrides['custom1']}</td>
</tr>
<% } %>

С этой настройкой полная строка не печатается в электронном письме, если она не определена вjenkinsfile или когда значение пусто.

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