Dav*_*988 6 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"
}
}
Run Code Online (Sandbox Code Playgroud)
即使我通过设置env.BUILD_TESTING2 = false开始构建,它仍然会输入条件并显示“是的-运行阶段”。
我也尝试过这种语法:
stage('test cond'){
if(env.BUILD_TESTING2){
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
Run Code Online (Sandbox Code Playgroud)
但是它仍然总是被评估为true。
如何在Jenkins脚本化管道中编写带有布尔参数的条件步骤?
Krz*_*łek 12
您需要使用toBoolean()函数将此环境变量(字符串类型)转换为布尔值:
stage('test cond'){
if(env.BUILD_TESTING2.toBoolean()){
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
Run Code Online (Sandbox Code Playgroud)
Wel*_*ahr 10
通过 params 而不是 env 更好地引用参数,这样它们就有了正确的对象类型。所以使用:
stage('test cond') {
if(params.BUILD_TESTING2) {
echo "Yes equal - running the stage"
} else {
echo "Not equal - skipping the stage"
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 10
如果您使用 booleanParam,我知道的最干净的方法是将when指令与表达式一起使用。
stage('test cond') {
when { expression { return params.BUILD_TESTING2 } }
steps {
sh 'echo "running the stage"'
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9537 次 |
最近记录: |