即使传递true,Jenkins DSL booleanCondition()也不会返回true
问题描述:
我有两个作业叫做ParentJob
和ChildJob
。 ParentJob
触发下游作业ChildJob
。即使传递true,Jenkins DSL booleanCondition()也不会返回true
从ParentJob
我传递的变量作为
parameters {
predefinedProp('RELEASE','true')
}
在ChildJob
我正在采摘参数作为
conditionalSteps {
condition {
booleanCondition("RELEASE")
steps {
shell("echo 'Wow !!! condition is parsed as true'")
}
}
在ChildJob
的参数页面上,我可以看到它正确地来作为true
:
仍然行shell("echo 'Wow !!! condition is parsed as true'")
未执行。在日志中,我可以看到:
09:35:41 Run condition [Boolean condition] enabling prebuild for step [BuilderChain]
09:35:41 [Boolean condition] checking [RELEASE] against [^(1|y|yes|t|true|on|run)$] (origin token: RELEASE)
09:35:41 Run condition [Boolean condition] preventing perform for step [BuilderChain]
09:35:41 Finished: SUCCESS
我甚至尝试通过为false
从ParentJob
的工作,仍然是同样的结果。我究竟做错了什么?
答
我错误地访问了令牌,其中正确的方法是booleanCondition('${RELEASE}')
。
这应该是正确的方法:
conditionalSteps {
condition {
booleanCondition('${RELEASE}')
steps {
shell("echo 'Wow !!! condition is parsed as true'")
}
}
}