如何在 Gitlab CI 中管理独立计划作业的成功/失败

时间:2021-06-23 21:50:59

标签: gitlab gitlab-ci

我有几个独立的计划 CI 作业。

  1. 检查基础架构是否与 Terraform 代码匹配。
  2. 检查 npm 漏洞。
  3. 检查外部 API 是否通过测试。

这些不是密封的。他们不会孤立地测试代码的适用性。他们可以在提交 12345 成功,然后在提交 12345 失败,然后再次成功。

我每天都运行这些。

Gitlab 缺乏拥有多种管道类型的能力(不像 Buildkite),所以我使用一个变量来控制运行哪些步骤。

然而,我留下的问题是这些检查会干扰提交的主要通过/失败状态。

例如,如果 Terraform 基础设施检查失败,那么它就会被破坏,人们会收到通知,下一个推送的人会被告知他们修复了它。

这种检查应该不会少见吧?应该如何管理这些?

1 个答案:

答案 0 :(得分:0)

听起来您正在寻找 allow_failure 关键字。

https://docs.gitlab.com/ce/ci/yaml/#allow_failure

<块引用>

当allow_failure 设置为true 且作业失败时,作业在用户界面中显示橙色警告。但是,管道的逻辑流将作业视为成功/通过,并且不会被阻塞。

job1:
  stage: test
  script:
    - execute_script_that_will_fail
  allow_failure: true