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

如何在Python脚本返回错误码1时让GitLab CI流水线失败?

解决GitLab CI在Python脚本返回1时不失败的问题

问题核心是你的Python脚本仅打印了检查结果的数字,但未将该值作为进程退出码返回给系统。GitLab CI依据命令的退出码判断阶段成败:0代表成功,非0代表失败,而Python脚本默认退出码为0,所以即便打印了1,CI仍会判定任务成功。

方法一:修改Python脚本返回正确退出码

在脚本末尾添加sys.exit(),将检查结果作为进程退出码返回:

import sys

word = "test"

def check():
    with open("tex.txt", "r") as file:
        for line_number, line in enumerate(file, start=1):  
            if word in line:
                return 0
            
        return 1

is_word_found = check()
print(is_word_found)
sys.exit(is_word_found)  # 让Python进程以检查结果作为退出码

当脚本返回1时,Python进程的退出码即为1,GitLab CI会识别这个非0值,直接标记该阶段失败。

方法二:在GitLab CI配置中判断输出并手动退出

若不想修改Python脚本,可在CI的script步骤中捕获脚本输出,再根据输出值手动退出:

image: davidlor/python-git-app:latest

stages:
    - Test
Test_stage:
   tags:
        - docker
   stage: Test
   script:
        - echo "test stage started"
        - result=$(python verify.py)
        - echo "检查结果:$result"
        - exit $result

该方式通过$(python verify.py)捕获脚本打印的输出,再用exit $result让Shell进程以该值作为退出码,同样能触发CI阶段失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:46:02