I'm looking to output the result of a Jenkins build into an email using Email-ext plugin + a groovy text template.
By tweaking the default groovy template slightly (ie, no code edits), I have gotten the output to look like:
* [] 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]
I would like to add the following to the email:
git pull origin <branch>
I've looked at the Jenkins API and the Email-ext plugin, but being fairly new to the internals of Jenkins, I'm not clear on how or what I should be looking at. Any and all pointers are much appreciated!
I've made some progress in this regard with getting the commit IDs. Code is as follows, and hopefully this helps others.
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}
<% }
} %>
Sample output is:
[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
Steps to configure this are:
$JENKINS_HOME
, create a directory called email-templates
-- this is the directory where the Email-ext plugin looks for scripts or templates. my-text-template.groovy
in this directory with the code above ${SCRIPT,template="my-text-template.groovy"}
If/when I figure out the piece about adding the output of git pull origin <branch>
into this email, I shall post it here.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.