0

关于 email-ext 的预发送脚本可能性的问题:目前,这是电子邮件通知的“默认内容”:

<h3>$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS</h3>
<p>
Check console output at $BUILD_URL/console to view the results.
</p>
...
<hr/>
<b>Changes since last build</b><br/>
<div style="padding-left: 15px; padding-bottom: 15px;">
    ${CHANGES,format="<div><b>%a</b></div><div style=\"padding-left:30px;\"> &#8212; &#8220;<em>%m</em>&#8221;</div><br/>"}
</div>

这将包括结果电子邮件中的提交消息......并且由于我们在每次提交时都提供了 Jira 问题 ID,因此最好用指向它的链接替换 ​​Jira 问题 ID,例如 TESTPROJECT-1234。

有人可以帮助我实现这种行为吗?最好的方法是使用正则表达式,对吗?喜欢

    (TESTPROJECT-[1-9][0-9]*)

并将其替换为

    <a href="http://jira.server.com/browse/$1">$1</a>

但目前我没有胶水,如何使用 groovy 和预发送脚本来做到这一点。:(

4

2 回答 2

0

如果它仍然相关,下面是发布说明的脚本,其中包含您正在寻找的链接

import hudson.model.*;
import hudson.util.*;

import java.util.regex.Pattern;
import java.util.regex.Matcher;


println build.getEnvVars()['JiraReleaseNotes']

def txt = build.getEnvVars()['JiraReleaseNotes']

def JiraReleaseNotes2 = txt.replaceAll(/# ([^]]*)/){ all, it ->
    "</br>$all"
}


def JiraReleaseNotes1 = JiraReleaseNotes2.replaceAll(/- \[([^]]*)]/){ all, it ->
    "</br><li><a href=\"http://server.com/browse/${it}\">${it}</a>"
}


println JiraReleaseNotes1

def thr = Thread.currentThread();
def currentBuild = thr.executable;

def newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue("JiraReleaseNotes2", JiraReleaseNotes1 ));
currentBuild.addAction(newParamAction);
于 2014-11-05T07:54:20.820 回答
0

你甚至不需要正则表达式。请参阅此脚本示例:https ://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/groovy-html.template向您展示如何循环在你的变更集上。

于 2013-08-15T07:13:39.373 回答