我是Jenkins的新手,我想知道如何在邮件正文(而不是附件)中成功构建之后显示生成的html报告(而不是html代码)。
我想知道我应该遵循的具体步骤以及我可能的果冻模板的内容应该是什么。
答案 0 :(得分:45)
深入了解plugin文档。这里不需要常规。
只需确保将内容类型设置为HTML并将以下内容添加到正文:
${FILE,path="my.html"}
这会将my.html
内容放在您的电子邮件正文中(文件位置相对于作业的工作区。我使用它并且效果很好。
我希望这会有所帮助。
编辑:请注意,您必须拥有Jenkins版本 1.532.1 (或更高版本)才能通过email-ext插件支持此功能。
答案 1 :(得分:8)
Jenkins 1.558
对我有用${FILE,path="target/failsafe-reports/emailable-report.html"}
答案 2 :(得分:2)
您只需要将链接指定给环境变量,然后您就可以使用$ {ENV,var = ENV_VARIABLE}在电子邮件中打印该变量。
答案 3 :(得分:2)
您可以使用Editable Email Notification帖子构建操作将html内容作为邮件正文的一部分发送。
复制 Default Content
中的html内容,然后选择 Content Type
作为 HTML (text/html)
,如下所示图片:
答案 4 :(得分:2)
答案 5 :(得分:1)
我在尝试实现此结果时遇到了麻烦,因为我的路径是动态变化的,而且我必须在 FILE
变量中使用一个变量。所以当我尝试以下任何一项时
body: '${FILE,path=${report}}'
body: "${FILE,path=${report}}"
body: '''${FILE,path=${report}}'''
还有更多,它没有用。另一方面,由于 Jenkins 的限制,我无法使用 groovy 读取文件
我的解决方法是像这样直接用shell读取html
html_body = sh(script: "cat ${report}", returnStdout: true).trim()
然后发送电子邮件
emailext replyTo: '$DEFAULT_REPLYTO',
subject: "subject",
to: EMAIL,
mimeType: 'text/html',
body: html_body
其中 ${report}
是 html 文件的路径,如 /var/jenkins/workspace_318/report.html
答案 6 :(得分:0)
除了使用body: ${FILE,path="index.html"}
读取文件之外,您还需要使用mimeType: 'text/html
设置适当的内容类型(全局或显式地为一次执行设置)。
emailext subject: '$DEFAULT_SUBJECT',
body: '${FILE,path="index.html"}',
recipientProviders: [
[$class: 'CulpritsRecipientProvider'],
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']
],
replyTo: '$DEFAULT_REPLYTO',
to: '$DEFAULT_RECIPIENTS',
mimeType: 'text/html'