我为jenkins上的项目定义了几个环境变量,其中我想在构建成功之前和之后发送的电子邮件通知中加入一些。
但groovy.text.Template
似乎不接受这些环境变量。
我还使用“将环境变量注入构建过程帮助功能:将环境变量注入构建过程”并定义我的变量如下
BUILD_NAME=${BUILD_NAME}
当执行构建时,BUILD_NAME
被接受作为参数。
请有人帮我解决这个问题。
答案 0 :(得分:4)
如果您使用email-ext Jenkins插件发送电子邮件,则会有一个“构建”对象,其中包含有关您的Jenkins作业的大量信息。
我会做以下事情:
通过将以下代码添加到模板中来打印此对象内的属性:
<% println build.properties.collect{it}.join('<br />') %>
查看电子邮件模板输出。您可以使用Jenkins“电子邮件模板测试”功能,也可以只运行您的工作。你应该看到一大堆“KEY = VALUE”打印件。
查找您感兴趣的环境变量。如果您的环境变量列在environment={BUILD_NUMBER=45, BUILD_DISPLAY_NAME=#45...}
中,则只需拨打build.environment['BUILD_NUMBER']
即可获得45。
如果要注入自定义环境变量,我建议安装Env Inject Plugin,通过该插件定义变量,然后在build.envVars中查找变量
答案 1 :(得分:1)
答案 2 :(得分:1)
希望我理解你的问题,但是为了在模板中读取该参数,你需要像这样调用它(如果BUILD_NAME是jenkins工作中的参数:
${ENV, var="BUILD_NAME"}
这将返回该参数的值。
答案 3 :(得分:0)
你可以做这样的事情来让它工作
<td style="color: #153643; font-family: Arial, sans-serif;font-size: 14px;padding: 20px 0px;" width="60%">
<a href="<%= build.absoluteUrl %>"> <%= build.envVars['JOB_BASE_NAME'] %> </a>
</td>
build.envVars 将所有 env 变量作为字典。使用键值对访问变量。
答案 4 :(得分:-1)
只是做:
<% def env = build.environment %>
<% def name = env.build_name %>
<% if (name != "") { %>
Name: <%=name %>
<% } %>