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
相关产品推荐
相关产品推荐

