我从这样的工作流程开始:
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'
),但我也需要将阶段标记为失败。
那么,如果返回的退出代码指示失败,那么如何将阶段标记为失败? (并非所有非零的退出代码都表示失败。)