Der Versuch, diese Pipeline arbeiten .. Ich muss einige Variablen (Liste oder Zeichenfolge) in groovy vorzubereiten, und iterieren Sie es in bash. Wie ich weiß, laufen groovige Skripte auf jenkins master, aber ich muss einige Dateien in den build workspace laden, deshalb versuche ich sie in SH step herunterzuladen.Jenkins Pipeline Shell Schritt
import groovy.json.JsonSlurper
import hudson.FilePath
pipeline {
agent { label 'xxx' }
parameters {
...
}
stages {
stage ('Get rendered images') {
steps {
script {
//select grafana API url based on environment
if (params.grafana_env == "111") {
grafana_url = "http://xxx:3001"
} else if (params.grafana_env == "222") {
grafana_url = "http://yyy:3001"
}
//get available grafana dashboards
def grafana_url = "${grafana_url}/api/search"
URL apiUrl = grafana_url.toURL()
List json = new JsonSlurper().parse(apiUrl.newReader())
def workspace = pwd()
List dash_names = []
// save png for each available dashboard
for (dash in json) {
def dash_name = dash['uri'].split('/')
dash_names.add(dash_name[1])
}
dash_names_string = dash_names.join(" ")
}
sh "echo $dash_names_string"
sh """
for dash in $dash_names_string;
do
echo $dash
done
"""
}
}
}
}
ich diese Fehlermeldung erhalten, wenn laufen ..
[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: dash for class: WorkflowScript
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:458)
at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:33)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:42)
Sieht aus wie ich offensichtlich etwas fehlt bin ...
Dank, es funktioniert! – fragpit