在Jenkins中将Git Commit哈希添加到Email-ext插件中

时间:2014-03-10 21:14:07

标签: git email groovy jenkins

我希望使用Email-ext插件+一个groovy文本模板将Jenkins构建的结果输出到电子邮件中。

通过稍微调整默认groovy template(即没有代码编辑),我得到的输出看起来像:

* [] Testing default post receive hook script | Author: Dev One
  - File: README [Change type > edit]

* [] Script enabled | Author: Dev Two
 - File: README [Change type > edit]

* [] Custom Email Text tweaking | Author: Dev Three
 - File: README [Change type > edit]

我想在电子邮件中添加以下内容:

  • 为每个更改/提交添加来自git的哈希
  • git pull origin <branch>
  • 的输出

我看过Jenkins API和Email-ext插件,但对于Jenkins的内部人员来说还是比较新的,我不清楚我应该怎样或者应该看什么。任何和所有指针都非常感谢!

1 个答案:

答案 0 :(得分:3)

我在获取提交ID方面取得了一些进展。代码如下,希望这有助于其他人。

Build Info:

  * Build Result: ${build.result}
  * Build Project: ${project.name}
  * Build URL: ${rooturl}${build.url}
  * Build Date: ${it.timestampString}
  * Build Duration: ${build.durationString}

<%

def changeSet = build.changeSet
if(changeSet != null) {
  def hadChanges = false %>
Changes in this build:
<% changeSet.each() { cs -> hadChanges = true %>
  <%= cs.metaClass.hasProperty('commitId') ? cs.commitId : cs.metaClass.hasProperty('revision') ? cs.revision : cs.metaClass.hasProperty('changeNumber') ? cs.changeNumber : "" %>
    <% cs.affectedFiles.each() 
      {p -> %> [<%= cs.commitId[0..6] %>]: <%= cs.msgAnnotated %> | <%= cs.author %> | File: <%= p.path %> | Change type: <%= p.editType.name %>      
    <%}   
   }     
    if(!hadChanges) { %>
      No changes
    <% }     
} %>

<% if(build.result==hudson.model.Result.FAILURE) { %>
CONSOLE OUTPUT
<%      build.getLog(200).each() { line -> %> ${line}
<%      }
   } %>

示例输出为:

[030bce6]: Ready for template v1 | Dev One | File: README | Change type: edit

[d4a310c]: Testing git rev-list formatted email | Dev Two | File: githook | Change type: edit
[d4a310c]: Testing git rev-list formatted email | Dev Two | File: README | Change type: edit

配置此步骤的步骤为:

  • $JENKINS_HOME中,创建一个名为email-templates的目录 - 这是Email-ext插件查找脚本或模板的目录。
  • 使用上面的代码
  • 在此目录中创建一个名为my-text-template.groovy的文件
  • 在构建的“配置”选项中&gt; “添加构建后操作”&gt; “可编辑的电子邮件通知”和“默认内容”,请输入${SCRIPT,template="my-text-template.groovy"}

如果/当我找到关于将git pull origin <branch>的输出添加到此电子邮件中的文章时,我将在此处发布。