首页/开发/CI/CD 与发布速查/GitLab CI retry 与 timeout
工具链要点63 条

GitLab CI retry 与 timeout

对特定失败原因自动重试,并给作业设置超时上限:重试用于基础设施抖动,超时防止挂起作业长期占用资源。

CI/CD 与发布速查开发更新于 2026-10-12
retrymax(次数)与 when(失败类型)
类型runner_system_failure、stuck_or_timeout_failure 等
timeout作业级超时(如 30m)
原则脚本失败不重试,基础设施失败可重试

只重试基础设施失败

只重试基础设施失败
test:
  script: [make test]
  timeout: 30m
  retry:
    max: 2
    when: [runner_system_failure, stuck_or_timeout_failure]
重试范围越窄越好:把脚本失败也纳入重试会掩盖真实缺陷。

易错点

  • retry when: always:不稳定测试被重试掩盖后进入主干
  • 不设 timeout:卡死作业占用并发额度直到人工处理

数据来源与参考

  • GitLab Docs《Retry failed jobs》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌