【发布时间】:2023-03-13 23:15:01
【问题描述】:
考虑具有以下作业的管道:
-
build:运行构建,需要 1 分钟 -
report:运行静态代码分析,将结果发布到 MR,耗时 59 分钟
应尽快通知开发人员report 阶段的结果,但不应阻止合并MR。管道的行为应该是这样的:
-
build必须始终成功,然后才能合并 MR。 -
report应始终最终启动并成功执行,但不应强制等待它才能合并 MR。
gitlab中是否有可能创建这样的管道?
到目前为止,我知道以下选项:
- 禁用“Pipelines must succeed”设置:这种情况下可以合并MR,即使
build不成功。 - 将
allow_failure的report设置为真。在这种情况下,可以在build完成后通过取消report作业来合并MR,但这违反了始终执行报告的要求。此外,如果您必须在合并之前取消可选作业,那么开发人员体验也会很差。 - 合并后执行
report作业。这有两个缺点:- 我只会在 MR 合并后才得到报告,而不是尽快得到报告。
-
report作业无法将其结果发布给 MR,MR 会通知相关人员。
【问题讨论】: