我的脚本中的这种情况总是被评估为 true 并显示“是的-运行阶段”
stage('test cond'){
if(env.BUILD_TESTING2 == true){
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
即使我通过设置env.BUILD_TESTING2 = false 开始构建,它仍然会输入条件并显示“是的-运行阶段”。
我也尝试过这种语法:
stage('test cond'){
if(env.BUILD_TESTING2){
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
但是它仍然总是被评估为 true 。
如何在Jenkins脚本化管道中编写带有布尔参数的条件步骤?
答案 0 :(得分:9)
通过参数而不是env更好地引用参数,这样它们就具有正确的对象类型。因此使用:
stage('test cond') {
if(params.BUILD_TESTING2) {
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
答案 1 :(得分:8)
您需要使用toBoolean()函数将此环境变量(字符串类型)转换为布尔值:
stage('test cond'){
if(env.BUILD_TESTING2.toBoolean()){
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}