Jenkins Groovy并行变量不起作用

我正在使用以下脚本运行Jenkins Build Flow插件:

def builds = [:]

[1,2].each {

builds[it] = { build("test", parm: ("$it")) }

}

parallel builds

但是,尽管正确填充了哈希(builds [it]),但parm始终为null。我也尝试了以下方法:

builds[it] = { build("test", parm: $it))  }

builds[it] = { build("test", parm: it)) }

但是它始终为空。

任何人都可以给我关于如何使用$ it或构建作业中任何其他变量的任何指示。

回答:

似乎您在Build Flow Plugin中遇到了一个错误(我已经看到了Pipeline

DSL的类似问题)。没有专家,但它似乎与groovy闭包以及由eachforeach构造提供的外部变量的作用域有关。例如(与您的示例类似):

def builds = [:]

[1,2].each {

builds[a] = { print "${it}\n" }

}

parallel builds

印刷品:

null

null

而:

def builds = [:]

[1,2].each {

def a = it;

builds[a] = { print "${a}\n" }

}

parallel builds

将打印

1

2

如预期的那样。因此,请使用局部变量存储迭代值。

以上是 Jenkins Groovy并行变量不起作用 的全部内容, 来源链接: utcz.com/qa/412581.html

回到顶部