我有什么看起来像是一个错误,但我不确定,无论哪种方式我都想知道解决它的方法:
这里有两个简单的groovy脚本,可以轻松演示问题:
#!/usr/bin/env groovy
def test_func = { var ->
println("${var}")
}
stage ("TEST") {
parallel(
"Side A" : { test_func("SIDE A") },
"Side B" : { test_func("SIDE B") })
}
这个功能正如您所期望的那样。詹金斯的相关输出:
[Pipeline] stage
[Pipeline] { (TEST)
[Pipeline] parallel
[Pipeline] [Side A] { (Branch: Side A)
[Pipeline] [Side B] { (Branch: Side B)
[Pipeline] [Side A] echo
[Side A] SIDE A
[Pipeline] }
[Pipeline] [Side B] echo
[Side B] SIDE B
[Pipeline] }
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] End of Pipeline
好吧,我想说我想做同样的事情,但这次为每一方抓住一个节点:
#!/usr/bin/env groovy
def test_func = { var ->
node("mynode") {
println("${var}")
}
}
stage ("TEST") {
parallel(
"Side A" : { test_func("SIDE A") },
"Side B" : { test_func("SIDE B") })
}
不幸的是,似乎变量" var"没有设定人们的期望:
[Pipeline] stage
[Pipeline] { (TEST)
[Pipeline] parallel
[Pipeline] [Side A] { (Branch: Side A)
[Pipeline] [Side B] { (Branch: Side B)
[Pipeline] [Side A] node
[Pipeline] [Side B] node
[Side B] Running on mynode in /path/to/workspace/branch-FWZZDEZOFZMJGIPOKAJQ7GY7YR7WZLVYNUGHCQ4VVMNFW25VVVBA@2
[Side A] Running on mynode in /path/to/workspace/branch-FWZZDEZOFZMJGIPOKAJQ7GY7YR7WZLVYNUGHCQ4VVMNFW25VVVBA
[Pipeline] [Side A] {
[Pipeline] [Side B] {
[Pipeline] [Side A] echo
[Side A] SIDE B
[Pipeline] [Side A] }
[Pipeline] [Side B] echo
[Side B] SIDE B
[Pipeline] [Side B] }
[Pipeline] [Side A] // node
[Pipeline] [Side B] // node
[Pipeline] [Side A] }
[Pipeline] [Side B] }
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] End of Pipeline
知道为什么会这样吗?如何才能将此变量正确传递给我的节点?