我正在使用Jenkins和email-ext发送构建通知。 Build在out
目录中生成以简单HTML格式存储的小型自定义报告。现在我可以轻松地将此报告附加到电子邮件中,但我想要的是将此报告呈现给电子邮件正文本身。我知道我可以编写自己的果冻模板,但这需要访问构建服务器(安装果冻脚本),我也想避免这种情况。所以我的问题是:
答案 0 :(得分:14)
看起来最简单的方法是使用Email-ext的“预发送脚本”
脚本看起来像这样:
def reportPath = build.getWorkspace().child("HealthTestResults.html")
msg.setContent(reportPath.readToString(), "text/html");
它将位于工作区根目录中的HealthTestResults.html的内容呈现为消息正文。
答案 1 :(得分:4)
将html文件包含在电子邮件内容中的简便方法是在默认内容中添加以下行= $ {FILE,path =“yourfilename.html”}
这适用于jenkins email ext插件
答案 2 :(得分:0)
我尝试使用
def reportPath = build.getWorkspace().child("HealthTestResults.html")
msg.setContent(reportPath.readToString(), "text/html");
但发出的电子邮件是这样的:
帧警报 本文档旨在使用框架功能进行查看。如果看到此消息,则表示您使用的是不支持框架的Web客户端。
答案 3 :(得分:0)
如果您使用Groovy模板,则可以执行以下操作
stage("Notifications") {
steps {
script {
env.ForEmailPlugin = env.WORKSPACE
emailext mimeType: "text/html",
body: '''${SCRIPT, template="notification.template"}''',
subject: env.JENKINS_PROJECT + " " + currentBuild.currentResult + " : " + env.JOB_NAME + "/" + env.GIT_COMMIT,
recipientProviders: [requestor(), developers()],
from: env.JENKINS_EMAIL,
attachLog: true
}
}
}
和 /var/lib/jenkins/email-templates/notification.template
的切片<!-- ARGOCD SYNC OUTPUT -->
<h3>ArgoCD<h3/>
<hr size="1" />
<tt>
${new File("/tmp/sync.txt").text.replaceAll('\n','<br>').replaceAll(' ', ' ')}
</tt>