Cra*_*ues 4 jenkins jenkins-workflow
检测参数化版本中的参数是否存在的最佳方法是什么?我发现最接近的解决方案是在groovy中执行此操作:
node {
groovy.lang.Binding myBinding = getBinding()
boolean mybool = myBinding.hasVariable("STRING_PARAM1")
echo mybool.toString()
if (mybool) {
echo STRING_PARAM1
echo getProperty("STRING_PARAM1")
} else {
echo "STRING_PARAM1 is not defined"
}
mybool = myBinding.hasVariable("DID_NOT_DEFINE_THIS")
if (mybool) {
echo DID_NOT_DEFINE_THIS
echo getProperty("DID_NOT_DEFINE_THIS")
} else {
echo "DID_NOT_DEFINE_THIS is not defined"
}
}
Run Code Online (Sandbox Code Playgroud)
是使用getBinding()正确的API来执行此操作,还是有更好的方法?
您可以使用try-catch检查参数是否存在:
try {
echo TEST1
echo 'TEST1 is defined'
} catch (err) {
echo 'TEST1 is not defined'
}
Run Code Online (Sandbox Code Playgroud)
当您使用Pipelines时,您可以访问对象:params,它是一个Java映射,然后您可以使用:containsKey方法,即:
if(params.containsKey("STRING_PARAM1")) {
echo "STRING_PARAM1 exists as parameter with value ${STRING_PARAM1}"
} else {
echo "STRING_PARAM1 is not defined"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3448 次 |
最近记录: |