我正在使用Jenkins Job DSL插件并配置了一个参数化构建的种子作业。如果有人忘记填写其中一个必需参数,我想失败。我的DSL脚本顶部有以下内容:
def expectedParams = [
'BRANCH_NAME',
'FALLBACK_BRANCH',
'FOLDER_NAME',
'FOLDER_DISPLAYNAME',
'MAIL_TO'
];
boolean envChecksPass = true;
expectedParams.each {
if (! binding.variables.get(it)?.trim()) {
println "This script expects the $it environment variable to be set."
envChecksPass = false;
}
}
if (! envChecksPass) {
// TODO: SET THE JOB STATUS TO FAILED
return false;
}
如何完成TODO位?显然我可以在这里抛出异常,但它看起来有点难看。什么是首选/最佳实践方式。
答案 0 :(得分:3)
目前首选方式是抛出异常。如果抛出javaposse.jobdsl.dsl.DslException
,则将禁止堆栈跟踪,并且仅显示该消息。
答案 1 :(得分:0)
另一种方法可能是使用非零代码退出,这会将作业结果标记为FAILURE:
if (! envChecksPass) {
// TODO: SET THE JOB STATUS TO FAILED
exit 1;
}
答案 2 :(得分:-2)
在Jenkins管道中,最好使用“错误”步骤
if (! binding.variables.get(it)?.trim()) {
error "This script expects the $it environment variable to be set."
}
您将在日志中看到以下输出(没有堆栈状态)
ERROR: This script expects the USER environment variable to be set.
Finished: FAILURE