GitLab CI:即使脚本失败,如何继续工作

时间:2019-12-04 16:34:04

标签: gitlab gitlab-ci

我在管道中有一份工作,该工作包含两个非常重要的步骤的脚本:

  • mvn test对我的代码运行JUnit测试
  • junit2html将测试的XML结果转换为HTML格式(由于无法通过MR完成我的管道,因此只能查看结果的唯一方式),并作为工件上传到GitLab。
  • docker rm销毁管道中较早创建的容器

我的问题是,当我的测试失败时,脚本会立即在mvn test处停止,因此永远不会到达junit2html步骤,这意味着测试结果不会在失败的情况下上传,并且{ {1}}也不执行,因此容器保留并弄乱了随后的管道。

我想要的是即使脚本在某个时候失败,也能够将工作一直持续到最后。基本上,该作业在GitLab CI / CD中仍应视为失败,但应执行其整个脚本。我该如何配置?

1 个答案:

答案 0 :(得分:0)

即使该步骤失败,在您需要继续执行的每个步骤中,您都可以在该步骤中将标志添加到.gitlab-ci.yml文件中。例如:

...
Unit Tests:
  stage: tests
  only:
    - branches
  allow_failure: true
  script:
    - ...

allow_failure: true标志将继续执行管道,即使该特定步骤失败也是如此。有关allow_failure的Gitlab CI文档位于:https://docs.gitlab.com/ee/ci/yaml/#allow_failure