我正在设置这样的数组
def tags = [
"zookeeper",
"postgres",
"postgres-maps",
"kudu-master",
"redis-master",
"consul",
"dcos-bootstrap"]
我试图将它传递给一个函数
run_linux("${tags}")
我的功能看起来像
def run_linux(tags) {
def tasks = [:]
for (i = 0; i < tags.size(); i++) {
def tag = "${tags[i]}"
tasks["${tag}"] = {
stage ("${tag}"){
sh ..
}
}
所以它在 jenkins 中的样子是这样的
[Pipeline] [[] stage
[Pipeline] [[] { ([)
[Pipeline] [z] stage
[Pipeline] [z] { (z)
[Pipeline] [o] stage
[Pipeline] [o] { (o)
[Pipeline] [k] stage
[Pipeline] [k] { (k)
它似乎将传入的内容视为字符串而不是数组。
最佳答案
您确实将一个字符串传递给 run_linux
函数 - 特别是字符串 "${tags}"
,其中 tags
通过字符串插值被强制转换为字符串。
相反,尝试像这样调用它: run_linux(tags)
。
关于Jenkins Pipeline Groovy 传入数组以发挥作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46433924/