jenkins - Jenkins-Declarative Pipeline - 如何使特定阶段失败
问题描述
在我的 Jenkins 声明式管道中,我正在对作业参数中传递的 Patchnumber 执行小型验证。如果补丁号少于 8 个字符,则特定阶段应该失败。下面是相同的代码。在这里,我看到 Stage 没有失败,它继续进行下一个 Stage。
如何使 Stage 强制失败并终止整个 Job 执行?
stage("Validate Patch Number Size")
{
steps
{
script
{
if ( (params.ENGLISH_PATCH_NUMBER).length() == 8 && (params.BIP_DB_PATCH_NUMBER).length() == 8 && (params.KO_PATCH_NUMBER).length() == 8) {
result = 'valid'
echo "Patch number entered meets the recommended size 8 - Status:$result"
} else {
resultStatus = 'Invalid'
echo "The patch number size doesnt meet the recommended size 8 - Status: $resultStatus "
currentBuild.result='FAILURE'
echo "The current status is ${currentBuild.result}"
}
}
}
}
解决方案
使用该error
步骤输出消息并中止管道。这将当前阶段以及整个管道标记为失败(假设没有catchError
或try/catch
更高级别)。
您无需currentBuild.result
手动设置。
else {
resultStatus = 'Invalid'
error "The patch number size doesnt meet the recommended size 8 - Status: $resultStatus"
// No further code will be executed after 'error'!
}
推荐阅读
- python - 如何通过多个键连接两个数据框?
- amazon-web-services - lambda-local 和 AWS Sam CLI 有什么区别?
- swift - 分发 .ipa 时出现“SwiftKeychainWrapper.framework 代码签名失败”
- r - 如何使用 rbind.data.frame 以使生成的数据框没有行名?
- gnuplot - gnuplot 是否可以添加时间值
- python - 如何使用 DataFrames 比较两个 CSV 文件并检索不同的单元格?为什么我在浮点单元格中得到这么多小数?
- python - 测试仅在一个 python 版本上失败,并且差异仅显示 README 更改。这怎么可能?
- javascript - 单击项目列表然后显示到另一个列表
- java - 在java的main方法中声明的变量
- php - 用数组列表修剪字符串