【问题标题】:Jenkins Email-ext plugin build log all on one lineJenkins Email-ext 插件构建日志全部在一行
【发布时间】:2014-03-24 14:36:52
【问题描述】:

我在很多地方都看到过这样的问题,但没有找到真正的答案。

有谁知道如何使用 html.jelly 模板使构建日志显示在正文中,而不是全部一起运行,并且实际上用换行符分隔每一行?

我很确定答案在于模板需要进行某种更改,但我不知道从哪里开始。

现在我在我的电子邮件中收到了这个:

    [copy] Copying 1 file to /opt/hybris/hybris/bin/ext-channel/cscockpit/resources/localization [mkdir] Created dir: /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc [echo] [jspcompile] generating.. [echo] [jspcompile] touching jsp files [echo] [jspcompile] compiling.. /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc [yjavac] Compiling 209 source files to /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc [touch] Creating /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc/jspcompile_touch [stopwatch] [build: 36.436 sec] server: [echo] [echo] Configuring server at /opt/hybris/hybris/bin/platform/tomcat-6 [echo] Using config set at /opt/hybris/hybris/config/tomcat [echo] [copy] Copying 8 files to /opt/hybris/hybris/bin/platform/tomcat-6 [copy] Copying 6 files to /opt/hybris/hybris/bin/platform/tomcat-6 [copy] Copying 1 file to /opt/hybris/hybris/bin/platform/tomcat-6/lib [java] Process not found [java] shutting down hybris registry.. all: [echo] Build finished on 24-March-2014 07:09:01. [echo] BUILD SUCCESSFUL Total time: 42 seconds SSH: EXEC: completed after 59,838 ms SSH: Disconnecting configuration [Dev-trunk] ... SSH: Transferred 3 file(s) Email was triggered for: Success Sending email for trigger: Success 

但我希望它看起来像这样......

[copy] Copying 1 file to /opt/hybris/hybris/bin/ext-channel/cscockpit/resources/localization 
[mkdir] Created dir: /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc 
echo] 
jspcompile] generating.. 
[echo] 
[jspcompile] touching jsp files 
[echo] 
[jspcompile] compiling.. /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc [yjavac] Compiling 209 source files to /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc [touch] Creating /opt/hybris/hybris/bin/platform/tomcat-6/work/Catalina/localhost/hmc/jspcompile_touch 
[stopwatch] 
[build: 36.436 sec] server: 
[echo] 
[echo] Configuring server at /opt/hybris/hybris/bin/platform/tomcat-6 
[echo] Using config set at /opt/hybris/hybris/config/tomcat 
[echo] 
[copy] Copying 8 files to /opt/hybris/hybris/bin/platform/tomcat-6 
[copy] Copying 6 files to /opt/hybris/hybris/bin/platform/tomcat-6 
[copy] Copying 1 file to /opt/hybris/hybris/bin/platform/tomcat-6/lib 
[java] Process not found 
[java] shutting down hybris registry.. all: 
[echo] Build finished on 24-March-2014 07:09:01. 
[echo] BUILD SUCCESSFUL Total time: 42 seconds SSH: EXEC: completed after 59,838 ms SSH: Disconnecting configuration 
[Dev-trunk] ... SSH: Transferred 3 file(s) Email was triggered for: Success Sending email for trigger: Success 

【问题讨论】:

  • 有一种可能是您没有将邮件内容设置为“HTML”,比如在job的配置部分或系统Email-ext配置部分,请您检查一下吗?抱歉,我无法在家中访问我的 Jenkins 服务器,否则我可以为您提供更详细的信息。
  • 是的,它是为 HTML 设置的...这是我在我的默认内容中使用的代码... ${JELLY_SCRIPT,template="html_gmail"} $BUILD_LOG
  • 有一个插件的选择列表,它有三个选项:dufault、text、html,请检查
  • 是的...它设置为 HTML....默认内容类型 -> HTML
  • 哦,对了,如果你指定的jelly脚本有格式错误,哪怕是一个小错误都会导致html模板输出为文本,请问你修改了标准模板吗?如何修改?

标签: email plugins jenkins format jelly


【解决方案1】:

很抱歉让您久等了。今天我可以访问我的 jenkins 服务器,我尝试了 Jelly 模板,它工作正常。

首先ext-mail插件的WIKI很好用,这里是链接:ext-mail wiki

我的jenkins的安装路径和你的一样:/var/lib/jenkins/,但是我没有找到JELLY模板文件html.jelly,我用的是WIKI的文件,这里是链接:@ 987654322@

现在我将展示我所做的和得到的结果:

  • 其实我把模板文件html.jelly放在/var/lib/jenkins/email-templates,注意根据WIKI,需要在jenkins安装文件夹下创建文件夹email-templates,这样ext-mail 插件可以访问模板文件。我没有尝试过你指定的路径,所以我不知道如果我将html.jelly放在目录下它是否仍然有效:/var/lib/jenkins/plugins/email-ext/WEB-INF/lib /hudson/plugins/emailext/模板。

  • 将 html.jelly 重命名为 html_my.jelly。

  • 修改 html_my.jelly,注释下面 3 行,以便控制台日志始终显示。
&lt!-- &ltj:getStatic var="resultFailure" field="FAILURE" className="hudson.model.Result"/&gt &ltj:if test="${build.result==resultFailure}"&gt --&gt &ltTABLE width="100%" cellpadding="0" cellspacing="0"&gt &ltTR&gt&ltTD class="bg1"&gt&ltB&gt控制台输出&lt/B&gt&lt/TD&gt&lt/TR&gt &ltj:forEach var="line" items="${build.getLog(100)}"&gt&ltTR&gt&ltTD class="console"&gt${line}&lt/TD&gt&lt/TR&gt&lt/j:forEach&gt &lt/表格&gt &ltBR/&gt &lt!-- &lt/j:if&gt --&gt
  • Jenkins -- 管理 Jenkins -- 配置系统 -- 扩展电子邮件通知。 将“Default Content Type”设置为“HTML(text/html)”,我这里设置的默认内容为${JELLY_SCRIPT, template="html_my"},我想我们可以在Job的配置中设置Default Content也行。请参阅此处的图片:

  • 在你的作业配置中,你还需要修改内容类型为“HTML(text/html)”,并且需要指定触发类型。参考配置Job的图片:

如您所见,下图是我临时工作的电子邮件内容,希望这对您有所帮助,如果您有更多问题,请告诉我。

对了,用groovy模板也很棒,大家可以试试!

【讨论】:

猜你喜欢
  • 2012-06-05
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多