如何在脚本通过之前阻止gitlab合并



我们使用的是GitLab和GitLab CI,其中包含构建、测试和打包步骤。我们已经编写了一个脚本,用于检查用户是否为他们添加的功能做了一些内务管理。脚本返回1或0,具体取决于是否完成内务管理。目前,脚本进入GitLab CI的构建步骤,这意味着除非完成内部维护,否则构建将失败。这很好,因为在房屋管理完成之前,开发商无法合并。但是,如果构建和测试继续运行,但用户只是被阻止完成合并请求,那会更好。例如,通过添加一些自动的";批准";脚本通过时批准的步骤。

有没有一种明显、简单或最好的方法来做到这一点?

感谢

将作业设置为使用内置的.post阶段并使用needs: []。这将导致作业(1(立即运行,没有延迟;(2(不会因为处于最后阶段而停止构建/测试或任何其他作业的启动;(3(作业的失败仍将阻止合并(前提是启用了成功设置所需的管道(

housekeeping:
stage: .post  # always the last stage in any pipeline
needs: []  # start immediately with no dependencies
script: "..."
# ...

您可以将此检查作为CI的最后一步,这样其他所有操作都会通过,只有此操作会失败。

另一种方法是将所有其他作业标记为when: always,而不是仅在前一个作业成功时运行它们。

最新更新