在Jenkins管道中,带有布尔参数的输入步骤始终为真
我用一个布尔参数向Jenkins管道添加了一个输入步骤。但是,无论我在运行管道时是否选中该框,控制台输出总是显示“YEAH” 我错过了什么?我的理解是,如果用户取消选中该参数,那么脚本应该输入else语句在Jenkins管道中,带有布尔参数的输入步骤始终为真,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我用一个布尔参数向Jenkins管道添加了一个输入步骤。但是,无论我在运行管道时是否选中该框,控制台输出总是显示“YEAH” 我错过了什么?我的理解是,如果用户取消选中该参数,那么脚本应该输入else语句 stage('Dockerize') { input { message 'Build Docker image' parameters { booleanParam(name: 'BUILD_DO
stage('Dockerize') {
input {
message 'Build Docker image'
parameters {
booleanParam(name: 'BUILD_DOCKER_IMAGE', defaultValue: true, description: 'Uncheck to skip creation of Docker image.')
}
}
steps {
script {
if (BUILD_DOCKER_IMAGE) {
echo "YEAH"
} else {
echo "NAY"
}
}
}
}
我发现我需要将变量解析为布尔值:
if (BUILD_DOCKER_IMAGE.toBoolean()) {
// Do stuff here...
}
我发现我需要将变量解析为布尔值:
if (BUILD_DOCKER_IMAGE.toBoolean()) {
// Do stuff here...
}
无论实际参数类型如何,语句
PARAMETERNAME
和env.PARAMETERNAME
的类型始终为String
。这是因为它们作为环境变量传递,环境变量只能是字符串
要保留原始类型,请使用params.PARAMETERNAME
:
if(参数BUILD\u DOCKER\u IMAGE){
//在这里做事。。。
}
比
BUILD\u DOCKER\u IMAGE.toBoolean()
语句PARAMETERNAME
和env.PARAMETERNAME
的类型始终是String
。这是因为它们作为环境变量传递,环境变量只能是字符串
要保留原始类型,请使用params.PARAMETERNAME
:
if(参数BUILD\u DOCKER\u IMAGE){
//在这里做事。。。
}
比BUILD\u DOCKER\u IMAGE.toBoolean()
更干净、更安全