gitlab - GitLab CI Pipeline 等待外部工具
问题描述
我想让 Crucible (CodeReview Tool) 与我的 gitlab 集成。因此,除了特殊的“智能”提交命令之外没有直接集成,例如开始审查或链接到 Jira 票证。
但在另一个工具的另一个视频中,我看到了等待管道的想法。所以我偷了这个想法,想把它整合到 Curcible 中:
在管道中,我想开始为给定的 ReviewID 轮询坩埚的 WebAPI,当 Json 中的答案“完成”时,我想成功管道,否则我只想稍后再试......
知道如何通过让跑步者永远跑步并且每 x 秒做一次投票来实现这一点吗?
解决方案
首先,长时间或永远运行的作业将占用运行器,因此请确保您有足够数量的静态运行器或使用基于 Kubernetes 的运行器,它们将为每个作业生成一个专用的 pod。
如果您对长轮询作业没问题,那么您必须通过使用设置覆盖作业规范中的超时设置,让作业超过默认的 60 分钟超时timeout:
。
参考这里:https ://docs.gitlab.com/ee/ci/yaml/#timeout
此外,您可能需要检查您的跑步者是否也有超时并将其删除,因为您不能超过跑步者超时,如该参考页面所引用的:
作业级超时可以超过项目级超时,但不能超过运行器特定超时
一旦解决了作业超时问题,就可以使用简单的 while 循环对 Crucible API 端点进行轮询。
推荐阅读
- android - 改造 - 删除为空,但响应主体类型被声明为非空
- r - R在导入数据时如何确定因子变量的默认级别排序?
- blazor - 如何在 Blazor 中嵌入调查?
- javascript - JavaScript 中电子邮件内容的日期时间转换
- go - rand.Seed(time.Now().UTC().UnixNano()) 中的 UTC() 调用是否多余?
- python - 翻转已排序数据帧的排序顺序
- wordpress - 基于当前用户的高级自定义字段默认值
- python - Python中的小数到二进制
- sql - TSQL从以不同ID连接的表中选择与ID关联的最大值?
- javascript - Python 发布请求检查复选框并提交