如何让gitlab故意重试?

Posted

技术标签:

【中文标题】如何让gitlab故意重试?【英文标题】:How to cause gitlab to retry on purpose? 【发布时间】:2020-07-29 06:06:04 【问题描述】:

从此链接, https://docs.gitlab.com/ee/ci/yaml/#retry

它表明有可能导致gitlab根据某些情况重试作业。这些情况列在“何时”部分。我们如何使脚本产生这些重试条件之一?

我们返回一个数字吗?我们如何找到什么数字?

由于某种原因,我们有时使用的服务永远不会被识别为可以使用,所以我想做的是检查准备情况大约 10 分钟,如果它仍然失败,请让脚本失败,原因是"stuck_or_timeout_failure" 然后有:

retry:
  max: 5
  when:
    - stuck_or_timeout_failure

我怎么去那里?

【问题讨论】:

【参考方案1】:

GitLab 14.6(2021 年 12 月)应该可以做到这一点:

API 响应中返回的作业失败原因

使用 API 收集有关作业失败原因的数据可能很困难。 例如,您可能需要确切的失败原因以更好地利用 retry:when 关键字。

现在,failure_reason 在来自 Jobs API 的响应中公开,收集作业失败数据要容易得多。 感谢@albert.vacacintora 的贡献!

请参阅 Documentation 和 Issue。

【讨论】:

以上是关于如何让gitlab故意重试?的主要内容,如果未能解决你的问题,请参考以下文章

在每个请求使用会话时如何让 NHibernate 重试死锁事务?

问:Gitlab CI 谁重试旧管道

如何让 gitlab-runner 从指定文件中读取而不是 .gitlab-ci.yml?

如何让 Gitlab 6.5 在 Apache 2.4 代理下显示其图标?

如何让 Gitlab CI 管道始终运行一些作业,而其他作业仅在合并请求上运行?

如何让 Docker 中的 GitLab Runner 看到自定义 CA 根证书