如何在jenkins脚本化管道作业中使用布尔参数编写条件步骤?

时间:2018-10-18 10:13:33

标签: if-statement jenkins jenkins-pipeline

我的脚本中的这种情况总是被评估为 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脚本化管道中编写带有布尔参数的条件步骤?

2 个答案:

答案 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"
    }
}