将Jenkins控制台输出作为HTML电子邮件发送

Sum*_*itk 10 html email build jenkins jenkins-plugins

我不知道这是否可能,但仍然在这里询问是否有人尝试过/想过它.

我有一个构建运行,当失败回应出html代码,如下所示.我想将此html作为电子邮件发送给所有收件人.

目前,当我使用简单的电子邮件插件时,整个控制台输出将作为电子邮件发送,其中包含所有这些html标签(完全不可读).然后我安装了Email Ext插件,但我不确定预发送脚本是否可以读取我的控制台输出并发送电子邮件.有人试过吗?是值得花时间在它上面还是我应该修改输出以显示格式化文本?

此构建用于内部工具,我无法创建.html文件或将链接作为电子邮件发送到.html文件,因为路径位于防火墙后面.

我不知道这是否支持,但控制台输出是否可能显示html输出?

谢谢您的帮助!

                <style type="text/css">
                    table.gridtable {
                    font-family: verdana,arial,sans-serif;
                        font-size:11px;
                        color:#333333;
                        border-width: 1px;
                        border-color: #666666;
                        border-collapse: collapse;
                    }
                    table.gridtable th {
                    border-width: 1px;
                        padding: 8px;
                        border-style: solid;
                        border-color: #666666;
                        background-color: #dedede;
                    }
                    table.gridtable td {
                    border-width: 1px;
                        padding: 8px;
                        border-style: solid;
                        border-color: #666666;
                        background-color: #ffffff;
                    }
                </style>

                <table class="gridtable">
                    <thead>
                        <tr>
                          <th>Service Checked</th>
                          <th>Status</th>
                          <th>Response</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                          <td>canary</td>
                          <td>Success</td>
                          <td>Please override the check() method</td>
                        </tr>

                        <tr>
                          <td style="color: red;"><strong>www.mysite.com</strong></td>
                          <td style="color: red;">Failure</td>
                          <td>Ping to https://www.mysite.com/canary?from=here FAILED</td>
                        </tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

Sla*_*lav 12

Email Ext插件适用于HTML.由您的电子邮件客户端来解析HTML(但是,这些日子大部分时间都是如此).

问题是:你的构建如何在上面输出这个HTML?它输出到文件?它是否在控制台输出中显示?

如果文本在控制台输出中,请使用:

<pre>${BUILD_LOG_EXCERPT, start="Regex-for-start", end="Regex-for-end"}</pre>

<pre>标签是保持间距/格式.
startend正则表达式识别"起跑线"从开始显示日志,而"结束行"在其停止显示日志.

请注意,排除了行startend行本身.因此,在您的构建中,在html输出之前和之后放置页眉和页脚行,并在此处使用它们.

作为参考,在email-ext配置中,单击" 内容参考"问号图标?


Sum*_*itk 6

所以这就是我在@Slav的帮助下解决它的方法

詹金斯工作正在运行这个脚本:

<?php
echo "start-here\n";
echo "<html><body><table border=1>
<tr><td>yello1111</td><td>11111bbbbbbb</td></tr>
<tr><td>yelloooo</td><td>bbbbbbb</td></tr>
</table></body></html>";
echo "end-here\n";
Run Code Online (Sandbox Code Playgroud)

该作业使用email-ext进行配置,并在Add post-build action->Editable Email Notification -> Default Content我输入以下内容:

${BUILD_LOG_EXCERPT, start="\\b(start-here)\\b", end="\\b(end-here)\\b"}
Run Code Online (Sandbox Code Playgroud)

这会将电子邮件作为 html 内容而不是 html 文本发送。


Aje*_*han 6

转到“Manage-jenkins”->“configure system” 比在“Extended E-mail Notification”设置上,把下面这行放在“default content”文本区域

<pre>${BUILD_LOG, maxLines=9999, escapeHtml=false}</pre>
Run Code Online (Sandbox Code Playgroud)