gpt4 book ai didi

jenkins - 在 Jenkins 的 email-ext 中快速测试 Jelly 模板

转载 作者:行者123 更新时间:2023-12-02 13:17:54 26 4
gpt4 key购买 nike

Jenkins 的 Email-ext 允许您编写 Jelly 电子邮件模板。如何编写和测试一个而不每次都触发构建?基本上,我正在寻找 1 秒的迭代,我可以在其中修改 Jelly 脚本,在浏览器上点击刷新,然后它将根据硬编码项目和构建结果自动渲染模板。

最佳答案

在 _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/

还有一个问题可以让这变得更容易:

JENKINS-9594 - Should be able to send test e-mail based on previous build

关于jenkins - 在 Jenkins 的 email-ext 中快速测试 Jelly 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com