我在管道中有一份工作,该工作包含两个非常重要的步骤的脚本:
mvn test
对我的代码运行JUnit测试junit2html
将测试的XML结果转换为HTML格式(由于无法通过MR完成我的管道,因此只能查看结果的唯一方式),并作为工件上传到GitLab。docker rm
销毁管道中较早创建的容器我的问题是,当我的测试失败时,脚本会立即在mvn test
处停止,因此永远不会到达junit2html
步骤,这意味着测试结果不会在失败的情况下上传,并且{ {1}}也不执行,因此容器保留并弄乱了随后的管道。
我想要的是即使脚本在某个时候失败,也能够将工作一直持续到最后。基本上,该作业在GitLab CI / CD中仍应视为失败,但应执行其整个脚本。我该如何配置?
答案 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