Jenkins 的 Email-ext 允许您编写 Jelly 电子邮件模板。如何在不每次都触发构建的情况下编写和测试一个?基本上,我正在寻找一个 1 秒的迭代,我可以在其中修改 Jelly 脚本,在浏览器上点击刷新,它会根据硬代码项目和构建结果自动呈现模板。
问问题
9323 次
2 回答
7
现在有一个选项可以针对更新版本的插件中的构建测试模板。当您在工作屏幕上时,左侧应该有一个链接,上面写着电子邮件模板测试。它会让你选择一个构建来再次测试,它会在那里呈现模板。
于 2014-12-05T20:12:05.703 回答
7
在 _http://server/script/ 打开 Jenkins 脚本控制台(当这是实际 URL 时,Stackoverflow 在保存编辑时遇到问题)。
输入以下代码并替换your-project-name
为您的项目名称和me@me.com
您的电子邮件地址:
import hudson.model.StreamBuildListener
import hudson.plugins.emailext.ExtendedEmailPublisher
import java.io.ByteArrayOutputStream
def projectName = "your-project-name"
def project = Jenkins.instance.getItem(projectName)
try
{
def testing = Jenkins.instance.copy(project, "$projectName-Testing")
def build = project.lastUnsuccessfulBuild
// see the <a href="http://javadoc.jenkins-ci.org/hudson/model/Job.html#getLastBuild()" title="Job" target="_blank">javadoc for the Job class</a> for other ways to get builds
def baos = new ByteArrayOutputStream()
def listener = new StreamBuildListener(baos)
testing.publishersList.each() { p ->
println(p)
if(p instanceof ExtendedEmailPublisher) {
// modify the properties as necessary here
p.recipientList = 'me@me.com' // set the recipient list while testing
// run the publisher
p.perform((AbstractBuild<?,?>)build, null, listener)
// print out the build log from ExtendedEmailPublisher
println(new String( baos.toByteArray(), "UTF-8" ))
}
}
}
finally
{
if (testing != null)
{
testing.delete()
}
}
来源:https ://earl-of-code.com/2013/02/prototyping-and-testing-groovy-email-templates/
还有一个问题是跟踪使这更容易:
于 2013-02-27T16:48:32.283 回答