如何在 Jenkins email-ext 插件中调用 groovy 模板
How to invoke groovy templates in the Jenkins email-ext plugin
我想在 Jenkins 的电子邮件分机插件中使用 Groovy 脚本功能,但我是新手,似乎有很多假设知识。就像人们如何首先调用这些模板之一。
这个问题的答案可能很明显,但我感觉有点迷茫,希望能指出正确的方向。
答案实际上是显而易见的,并且包含在 email-ext 文档中:
${SCRIPT, template="groovy-text.template"}
这个例子是基于官方的email-ext documentation,遗憾的是它没有提供任何具体的例子来说明如何在Pipeline中使用$SCRIPT
行代码。如果您希望使用 HTML 模板作为电子邮件的正文,那么您需要:
创建一个名为 my-email.template
或任何您喜欢的模板文件 - 您可以找到一些模板示例 here
<body>
<h3>Using "build" environment variables:</h3>
<p>
<a href="<%= build.absoluteUrl %>"><%= build.fullDisplayName %></a>
</p>
<h3>List of all available "build" environment variables:</h3>
<div>
<% println build.properties.collect{it}.join('<br />') %>
</div>
</body>
让您的 Jenkins 管理员将 my-email.template
文件放在 Jenkins 机器上的 $JENKINS_HOME\email-templates
目录中 - 确保用户 jenkins 拥有此文件目录及其内容(即模板文件)
在管道中加载 my-email.template
作为正文内容:
stage('Send email') {
def mailRecipients = "jenkins-user@example.com"
def jobName = currentBuild.fullDisplayName
emailext body: '''${SCRIPT, template="my-email.template"}''',
subject: "[Jenkins] ${jobName}",
to: "${mailRecipients}",
replyTo: "${mailRecipients}",
recipientProviders: [[$class: 'CulpritsRecipientProvider']]
}
这是一个很老的话题,但这是我利用内置模板所做的事情
stage('Send Email')
{
steps
{
emailext body: '${JELLY_SCRIPT,template="html"}',recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], subject: 'Build Successful ${JOB_NAME}',mimeType: 'text/html'
}
}
插件文档指出 html Jelly 脚本是内置的,因此您可以轻松地使用它。
我想在 Jenkins 的电子邮件分机插件中使用 Groovy 脚本功能,但我是新手,似乎有很多假设知识。就像人们如何首先调用这些模板之一。
这个问题的答案可能很明显,但我感觉有点迷茫,希望能指出正确的方向。
答案实际上是显而易见的,并且包含在 email-ext 文档中:
${SCRIPT, template="groovy-text.template"}
这个例子是基于官方的email-ext documentation,遗憾的是它没有提供任何具体的例子来说明如何在Pipeline中使用$SCRIPT
行代码。如果您希望使用 HTML 模板作为电子邮件的正文,那么您需要:
创建一个名为
my-email.template
或任何您喜欢的模板文件 - 您可以找到一些模板示例 here<body> <h3>Using "build" environment variables:</h3> <p> <a href="<%= build.absoluteUrl %>"><%= build.fullDisplayName %></a> </p> <h3>List of all available "build" environment variables:</h3> <div> <% println build.properties.collect{it}.join('<br />') %> </div> </body>
让您的 Jenkins 管理员将
my-email.template
文件放在 Jenkins 机器上的$JENKINS_HOME\email-templates
目录中 - 确保用户 jenkins 拥有此文件目录及其内容(即模板文件)在管道中加载
my-email.template
作为正文内容:stage('Send email') { def mailRecipients = "jenkins-user@example.com" def jobName = currentBuild.fullDisplayName emailext body: '''${SCRIPT, template="my-email.template"}''', subject: "[Jenkins] ${jobName}", to: "${mailRecipients}", replyTo: "${mailRecipients}", recipientProviders: [[$class: 'CulpritsRecipientProvider']] }
这是一个很老的话题,但这是我利用内置模板所做的事情
stage('Send Email')
{
steps
{
emailext body: '${JELLY_SCRIPT,template="html"}',recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], subject: 'Build Successful ${JOB_NAME}',mimeType: 'text/html'
}
}
插件文档指出 html Jelly 脚本是内置的,因此您可以轻松地使用它。