Мы используем плагин 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
Ожидается, что эта строка отсутствует в электронном письме.Что мы делаем не так?Есть предложения?