You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Jenkins在构建状态变为不稳定后停止执行后续Windows批处理命令

问题根因

你当前第一组批处理的逻辑是Python脚本返回非0时主动执行exit 0,Jenkins收到该步骤的退出码为0,默认会认为该步骤执行成功,哪怕后续按规则将整体构建标记为不稳定,也不会主动终止后续步骤的执行。

解决方法

根据你使用的Jenkins任务类型,可以选择对应方案:

方案1:调整批处理退出码逻辑(适配自由风格/流水线任务)

修改第一组批处理的退出规则,直接把Python脚本的返回值透出给Jenkins:

:: 第一组Windows批处理命令
Python sys_dir/test1.py
set FIRST_EXIT_CODE=%ERRORLEVEL%
If %FIRST_EXIT_CODE% NEQ 0 (
    :: 直接返回原始错误码,不要转为0
    exit %FIRST_EXIT_CODE%
)

修改后进入Jenkins任务配置页:

  • 找到构建模块的高级设置,勾选遇到构建错误时终止构建
  • 如果你配置了退出码2对应不稳定,额外开启构建状态为不稳定时终止后续步骤的配置即可

方案2:使用条件构建插件控制执行(适配自由风格任务)

如果你确实需要保留第一组脚本返回0的逻辑,可安装Jenkins Conditional BuildStep插件,给第二组批处理添加执行条件:

  • 条件选择「当前构建状态」,设置仅当构建状态为成功时执行第二组批处理
  • 配置后只要第一组执行完成后构建状态为失败/不稳定,第二组步骤会自动跳过

方案3:流水线任务直接加状态判断

如果你使用的是Pipeline流水线任务,直接在步骤中加状态判断即可:

stage('运行第一组测试脚本') {
    steps {
        bat 'Python sys_dir/test1.py'
    }
}
stage('运行第二组测试脚本') {
    when {
        // 仅当前面所有步骤执行完构建状态为成功时才执行该阶段
        currentBuild.currentResult == 'SUCCESS'
    }
    steps {
        bat 'Python sys_dir/test2.py'
    }
}

内容的提问来源于stack exchange,提问作者YiZhiWan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:06:03