I am using a Groovy script to get an email on a list of offline slaves from a Jenkins freestyle job. I have the following code under Jenkins freestyle Job > Build Environment > Evaluated Groovy script :
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: "[email protected]"
}
catch (Throwable t) {
println(t)
throw t;
}
The slave list is printing out fine but while calling emailext, the following ERROR is returned :
groovy.lang.MissingMethodException: No signature of method: Script1.emailext() is applicable for argument types: (java.util.LinkedHashMap) values: [[body:${slaves}, to:[email protected], subject:test subject]] 08:17:48 [EnvInject] - [ERROR] - Problems occurs on injecting env vars defined in the build wrapper: org.jenkinsci.lib.envinject.EnvInjectException: Failed to evaluate the script.
I am new to this and would appreciate some guidance on making this work. Thanks in advance.
Try like this: