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

GitLab CI部署任务失败自动重试配置问题求助

GitLab CI 任务失败不重试的解决办法

你的配置里retry: 2没生效,核心原因是GitLab CI默认的重试触发条件不包含脚本主动返回错误码的场景。

默认情况下,retry仅会在runner层面的故障(比如runner连接中断、任务意外终止)时触发重试,而你脚本里的exit 1属于脚本执行完成但返回非零状态码,属于脚本逻辑失败,不在默认重试范围内。

修正后的配置

修改retry部分,指定触发重试的条件为脚本失败:

deploy:
    stage: deploy
    retry:
        max: 2
        when:
            - on_script_failure
            - on_failure  # 保留默认的runner故障重试场景
    script:
        - echo "running..."
        - exit 1
    only: [qa_branch]

或者如果你希望无论什么失败原因都重试,直接用when: always:

deploy:
    stage: deploy
    retry:
        max: 2
        when: always
    script:
        - echo "running..."
        - exit 1
    only: [qa_branch]

关键说明

  • on_script_failure:专门针对脚本执行返回非零码的场景触发重试
  • on_failure:覆盖runner层面的故障重试(默认行为)
  • 如果你使用的是GitLab 13.0之前的版本,retry不支持when配置,只能通过升级GitLab版本解决,或者在脚本内用循环逻辑实现命令重试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:40:35