我正在使用Email Ext Jenkins插件,它运行良好。
现在我需要动态设置收件人列表。基本上对于每个构建我都会在文件中获得一个电子邮件收件人列表,我需要使用该列表。我的问题是:
有没有办法设置一个环境变量,以便可以修改它,收件人列表将使用该环境变量。
我知道有一个解决方案可以在预发送脚本中以编程方式设置Jenkins Email-ext插件的收件人。How To set programmatically recipients of jenkins email ext plugin。但是对于我的情况,该解决方案存在一些困难,因为我需要读取包含电子邮件列表的文件。
答案 0 :(得分:1)
如果文件的格式是逗号分隔或空格分隔,则可以使用FILE标记(请参阅插件中的内容标记引用)。这应该将文件的内容放入收件人列表。
答案 1 :(得分:0)
我现在无法测试,所以我不记得apache commons是否可用。
使用以下内容创建名为recipients.groovy的文件:
<%
def stream = new FilePath(build.workspace, "yourfile.txt").read();
def recipients = IOUtils.toString(stream, "UTF-8");
%>
${recipients}
在你的工作配置中,在收件人列表中,你放了$ {SCRIPT,script =“recipients.groovy”}
API参考:
参考收件人列表中的recipients.groovy,提供以下异常:
Failed to create e-mail address for Error in script or template:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script1.groovy: 1:
unexpected token: < @ line 1, column 1. <% ^ 1 error
以下完全例外:
groovy.lang.MissingPropertyException: No such property: build for class: Script1
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script1.run(Script1.groovy:4)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:150)
at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:122)
at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
at hudson.util.RemotingDiagnostics.executeGroovy(RemotingDiagnostics.java:119)
at jenkins.model.Jenkins._doScript(Jenkins.java:3400)
at jenkins.model.Jenkins.doScript(Jenkins.java:3377)
at sun.reflect.GeneratedMethodAccessor344.invoke(Unknown Source)
答案 2 :(得分:0)
您可以使用Inject环境变量插件(https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin)并在运行时创建var,或者使用Propagate构建环境变量(https://wiki.jenkins-ci.org/display/JENKINS/Build+Env+Propagator+Plugin)来更改现有变量,然后您可以在使用可编辑电子邮件通知(https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin)
时,在项目收件人列表中使用此var