Jenkins Freestyle Job:从Evaluated Groovy脚本调用电子邮件通知

时间:2020-10-23 16:51:25

标签: jenkins groovy jenkins-groovy jenkins-job-dsl email-ext

我正在使用Groovy脚本从Jenkins自由式工作中获取有关脱机奴隶列表的电子邮件。我在 Jenkins自由式作业>构建环境>评估的Groovy脚本下有以下代码:

import hudson.model.Node
import hudson.model.Slave
import jenkins.model.Jenkins

String[] slaves = []
Jenkins jenkins = Jenkins.instance

for (Node node in jenkins.nodes) {
  if (!node.toComputer().online) {
    slaves += node.name
    }
}

 println "[OFFLINE SLAVES]: "+slaves

try{
 emailext body: "${slaves}",
    subject: "test subject",
    to: "abc@xyz.com"
}
catch (Throwable t) {
  println(t)
  throw t;
}

从列表可以正常打印,但是在调用emailext时,返回以下 ERROR

groovy.lang.MissingMethodException:方法的无签名:Script1.emailext()适用于参数类型:(java.util.LinkedHashMap)值:[[body:$ {slaves},至:abc@xyz.com ,主题:测试主题]] 08:17:48 [EnvInject]-[错误]-注入在构建包装器中定义的env var时出现问题:org.jenkinsci.lib.envinject.EnvInjectException:无法评估脚本。

我对此并不陌生,不胜感激一些有关这项工作的指导。 预先感谢。

1 个答案:

答案 0 :(得分:0)

尝试这样:

try {
    emailext (
         subject: "test subject",
         to: "abc@xyz.com",
         body: "Offline Slaves : '${slaves}'"
     )
}
相关问题