我可以配置jenkins发送带有静态分析报告摘要的电子邮件吗?

时间:2011-11-18 15:42:17

标签: jenkins continuous-integration hudson

我希望在构建完成后发送一封电子邮件,其中包含运行的报告(PMD,Checkstyle,Findbugs,Cobertura)中的一些数据,例如问题数量,新问题,覆盖范围等。

这可能吗?

3 个答案:

答案 0 :(得分:1)

我已经设法使用email-ext插件获取一些数据。您需要在发送的电子邮件中包含果冻文件,如下所示:

${JELLY_SCRIPT, template="html"}

有一个默认模板(html.jelly),其中包含junit和Cobertura结果,我通过添加以下内容进行了修改:

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define">
 ...
 <j:set var="fb" value="${it.getAction('hudson.plugins.findbugs.FindBugsResultAction')}" />
  <table width="100%">
   <tr><td colspan="2"><b>Findbugs Result</b></td></tr>
   <tr><td>Total:</td><td>${fb.result.numberOfWarnings}</td></tr>
   <tr><td>Fixed:</td><td>${fb.result.numberOfFixedWarnings}</td></tr>
   <tr><td>New:</td><td>${fb.result.numberOfNewWarnings}</td></tr>
   <tr><td colspan="2"><a href="${rooturl}${build.url}/findbugs">View Report</a></td></tr>
</table>
 ...
</j:jelly>

对于PMD和CheckStyle,您可以执行以下操作:

<j:set var="pmd" value="${it.getAction('hudson.plugins.pmd.PmdResultAction')}" />
<j:set var="cs" value="${it.getAction('hudson.plugins.checkstyle.CheckStyleResultAction')}" />

我还没有找到一种方法来包含结果的低/中/高优先级数据。

答案 1 :(得分:1)

<j:set var="pmd" value="${it.getAction('hudson.plugins.pmd.PmdResultAction')}" />
<j:if test="${pmd.isEmpty()!=true}">
   <TABLE width="100%">
       <TR><TD colspan="2" class="bg1"><B>PMD Result</B></TD></TR>
      <tr><td>Total:</td><td>${pmd.result.numberOfWarnings}</td></tr>
      <tr><td>High:</td><td>${pmd.result.getNumberOfAnnotations('HIGH')}</td></tr>
      <tr><td>Normal:</td><td>${pmd.result.getNumberOfAnnotations('NORMAL')}</td></tr>
      <tr><td>Low:</td><td>${pmd.result.getNumberOfAnnotations('LOW')}</td></tr>
      <tr><td>New:</td><td>${pmd.result.numberOfNewWarnings}</td></tr>
      <tr><td>Fixed:</td><td>${pmd.result.numberOfFixedWarnings}</td></tr>
      <tr><td colspan="2"><a href="${rooturl}${build.url}/pmdResult/">View Report</a></td></tr>
   </TABLE >    
<BR/>
</j:if>

试一试!请点击此处查看我的要点:https://gist.github.com/yangboz/9204868

答案 2 :(得分:0)

在我的案例中工作https://stackoverflow.com/a/22008267/1688570

对于确切的Action名称,请查看\ Jenkins \ jobs \ fispp-all-master \ builds \ $ {buildNumber} \ build.xml文件。 即我不得不使用hudson.plugins.findbugs.FindBugsMavenResultAction来显示正确的结果。