GitLab CI 管道等待外部工具

GitLab CI Pipeline wait for external tool

我想要 Crucible(CodeReview 工具)与我的 gitlab 集成。 因此,除了特殊的“智能”提交命令之外,没有直接集成,例如开始评论或链接到 Jira 工单。

但是在另一个工具的另一个视频中,我看到了等待管道的想法。所以我窃取了这个想法并想将其整合到 Curcible 中:

在管道中我想开始为给定的 ReviewID 轮询坩埚的 WebAPI,当 Json 中的答案是“完成”时,我想成功管道,否则我只想稍后再试...

知道如何通过让跑步者 运行 永远每 x 秒做一次轮询来实现这一点吗?

首先,长时间运行或永远运行的作业会占用运行器,因此请确保您有足够数量的静态运行器或使用 Kubernetes-based 运行器,它会为每个运行器生成一个专用 pod工作。

如果您对 long-polling 作业没问题,那么您必须使用 timeout: 设置覆盖作业规范中的超时设置,让作业超过默认的 60 分钟超时。

此处参考:https://docs.gitlab.com/ee/ci/yaml/#timeout

此外,您可能需要检查您的跑步者是否也有超时并将其删除,因为您不能超过跑步者超时,如该参考页所述:

The job-level timeout can exceed the project-level timeout but can’t exceed the runner-specific timeout

解决作业超时后,您可以使用简单的 while-loop 对 Crucible API 端点进行轮询。