1

私は Email Ext Jenkins プラグインを使用していますが、非常にうまく機能していました。

次に、受信者リストを動的に設定する必要があります。基本的に、ビルドごとにファイル内の電子メール受信者のリストを取得し、そのリストを使用する必要があります。私の質問は:

  • 環境変数を設定して変更できるようにする方法はありますか?受信者リストがその環境変数を消費するようになります。

  • 送信前スクリプトで Jenkins Email-ext プラグインの受信者をプログラムで設定するソリューションがあることは知っています。jenkins email ext plugin の受信者をプログラムで設定する方法。ただし、私の場合、電子メールのリストを含むファイルを読み取る必要があるため、そのソリューションにはいくつかの問題があります。

4

3 に答える 3

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 リファレンス:

Recipient Listで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)
于 2014-01-20T16:38:58.983 に答える
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 )

于 2015-02-13T17:19:44.887 に答える