首页 > 解决方案 > 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}"
            }
        }
    }
}

标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


使用该error步骤输出消息并中止管道。这将当前阶段以及整个管道标记为失败(假设没有catchErrortry/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'!
}

推荐阅读