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

时间:2019-02-25 19:20:46

标签: 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){
    build_ok = false
}

stage('Cleanup'){
    bat "${PYTHON} script_1.py"
}

万一脚本引发异常,此阶段将被标记为失败(GUI中为红色),但是由于catch,管道将继续执行。 (这是必需的,因为稍后的清理阶段。其他步骤将无法运行,因为它们受if(build_ok)保护)。这样就可以了。

但是现在我需要Python脚本的退出代码。这可以通过以下方式完成:

stage('Example_1'){
    exitcode = bat script: "${PYTHON} script_1.py", returnStatus: true
}

此文档以以下方式工作:

  

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

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

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

0 个答案:

没有答案