我正在设置一个Jenkins管道Jenkinsfile,我想检查是否设置了setting参数。
以下是文件的相关部分:
node ("master") {
stage 'Setup' (
[[$class: 'BooleanParameterValue', name: 'BUILD_SNAPSHOT', value: 'Boolean.valueOf(BUILD_SNAPSHOT)']],据我所知,这是访问boolean参数的方法,但我不确定如何声明IF语句本身。
我在考虑做一些像这样的事情:
if(BooleanParameterValue['BUILD_SNAPSHOT']){...请告诉我这句话的正确写法是什么?
发布于 2016-08-08 23:20:14
答案其实比这简单得多!根据pipeline documention,如果您定义了一个布尔参数isFoo,您可以在Groovy中仅使用它的名称来访问它,因此您的脚本实际上将如下所示:
node {
stage 'Setup'
echo "${isFoo}" // Usage inside a string
if(isFoo) { // Very simple "if" usage
echo "Param isFoo is true"
...
}
}顺便说一句,你可能不应该叫你的参数BUILD_SNAPSHOT,而应该叫buildSnapshot或者isBuildSnapshot,因为它是一个参数,而不是常量。
发布于 2020-04-14 08:05:09
您的管道脚本可以通过以下三种方式访问布尔参数:
作为纯参数的
isFoo来自env.isFoo映射的
env来自params.isFoo映射的
params如果您使用1)或2)访问isFoo,它将有一个字符串值( "true“或"false")。
如果你使用3)访问isFoo,它将有一个布尔值。
因此,测试脚本中的isFoo参数的最不容易混淆的方法如下:
if (params.isFoo) {
....
}或者,您可以像这样测试它:
if (isFoo.toBoolean()) {
....
}或
if (env.isFoo.toBoolean()) {
....
}需要使用toBoolean()将"true"字符串转换为布尔true,并将"false"字符串转换为布尔false。
发布于 2019-04-24 00:41:50
简单地执行不能保证其正常工作的if(isFoo){...} :)为了安全起见,使用if(isFoo.toString()=='true'){ ... }
https://stackoverflow.com/questions/38832723
复制相似问题