在脚本化管道中将Jenkins阶段标记为失败

在脚本化管道中将Jenkins阶段标记为失败,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我从工作流中的阶段开始,如下所示: try{ stage('Example_1'){ bat "${PYTHON} script_1.py" } } catch(e){ build_ok = false } try{ stage('Example_2'){ if(build_ok){ bat "${PYTHON} script_2.py" } } } catch(e){ bui

我从工作流中的阶段开始,如下所示:

try{
    stage('Example_1'){
        bat "${PYTHON} script_1.py"
    }
}
catch(e){
    build_ok = false
}

try{
    stage('Example_2'){
        if(build_ok){
           bat "${PYTHON} script_2.py"
        }
    }
}
catch(e){
    build_ok = false
}

stage('Cleanup'){
    bat "${PYTHON} script_1.py"
}
如果脚本引发异常,此阶段将标记为失败(GUI中为红色),但由于
catch
,管道将继续执行。(这是需要的,因为后面的清理阶段。其他步骤不会运行,因为它们由
if(build\u ok)
保护)。这样行

但是现在我需要Python脚本中的exitcode。这可以通过以下方式实现:

stage('Example_1'){
    exitcode = bat script: "${PYTHON} script_1.py", returnStatus: true
}
本文件的工作方式如下:

returnStatus:通常,带有非零状态代码的脚本将导致步骤失败并出现异常。如果选中此选项,步骤的返回值将改为状态代码。例如,您可以将其与零进行比较

我知道如何将整个构建标记为失败(
currentBuild.result='FAILURE'
),但我也需要将阶段标记为失败

那么,如果返回的exitcode指示该阶段失败,如何将该阶段标记为失败?(并非所有非零exitcode都表示失败。)