gpt4 book ai didi

jenkins - 使用带有闭包图的 failFast 会中断 "parallel"步骤

转载 作者:行者123 更新时间:2023-12-03 20:03:13 24 4
gpt4 key购买 nike

不确定这是我对 Groovy 的有限了解还是 Pipeline 中的怪癖 parallel步。我不能让它接受failFast如果我使用 map 而不是单独传递每个闭包:

def map = [:]
map['spam'] = {
node {
echo 'spam'
}
}
map['eggs'] = {
node {
echo 'eggs'
}
}
parallel map // Works.
parallel spam: map['spam'], eggs: map['eggs'], failFast: true // Works.
parallel map, failFast: true // Fails with exception.
failFast 的异常(exception)情况是:
java.lang.IllegalArgumentException: Expected named arguments but got [{failFast=true}, {spam=org.jenkinsci.plugins.workflow.cps.CpsClosure2@51a382ad, eggs=org.jenkinsci.plugins.workflow.cps.CpsClosure2@718cb50d}]
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:276)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:111)

最佳答案

如果您添加可选语法,它会有所帮助。第二个选项是传递一个新的 Map而第三个选项是传递您原来的 Map和一个额外的命名参数。老实说,我不确定它是怎么想的。

parallel(map)
parallel([
spam: map['spam'],
eggs: map['eggs'],
failFast: true
])
parallel map, failFast: true

无论如何,我认为最简单的事情是这样的:
def map = [
spam: {
node {
echo 'spam'
}
},
eggs: {
node {
echo 'eggs'
}
},
failFast: true
]
parallel map

或者...
parallel ([
spam: {
node {
echo 'spam'
}
},
eggs: {
node {
echo 'eggs'
}
},
failFast: true
])

关于jenkins - 使用带有闭包图的 failFast 会中断 "parallel"步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com