所有测试用例都应该在gitlab中运行,而不是第一个失败的测试用例
我正在建立一个gitlab环境。每次推送后,运行5个测试用例。但是,如果任何一个测试用例正在下降,则跳过另一个测试用例。 我要处理所有的案子。因为他们彼此独立 gitlab-ci.yml所有测试用例都应该在gitlab中运行,而不是第一个失败的测试用例,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我正在建立一个gitlab环境。每次推送后,运行5个测试用例。但是,如果任何一个测试用例正在下降,则跳过另一个测试用例。 我要处理所有的案子。因为他们彼此独立 gitlab-ci.yml stages: - build - unit_test_1 - unit_test_2 - unit_test_3 job1: stage: build script: - bash build.sh job2: stage: unit_test_1
stages:
- build
- unit_test_1
- unit_test_2
- unit_test_3
job1:
stage: build
script:
- bash build.sh
job2:
stage: unit_test_1
script:
- bash ./unit_test_1.sh
job3:
stage: unit_test_2
script:
- bash ./unit_test_2.sh
job4:
stage: unit_test_3
script:
- bash ./unit_test_3.sh
stages:
- build
- test
job1:
stage: build
script:
- bash build.sh
job2:
stage: test
script:
- bash ./unit_test_1.sh
job3:
stage: test
script:
- bash ./unit_test_2.sh
job4:
stage: test
script:
- bash ./unit_test_3.sh
如果uint_测试_1.sh失败。跳过其他测试 您可以这样尝试:
gitlab-ci.yml
stages:
- build
- unit_test_1
- unit_test_2
- unit_test_3
job1:
stage: build
script:
- bash build.sh
job2:
stage: unit_test_1
script:
- bash ./unit_test_1.sh
job3:
stage: unit_test_2
script:
- bash ./unit_test_2.sh
job4:
stage: unit_test_3
script:
- bash ./unit_test_3.sh
stages:
- build
- test
job1:
stage: build
script:
- bash build.sh
job2:
stage: test
script:
- bash ./unit_test_1.sh
job3:
stage: test
script:
- bash ./unit_test_2.sh
job4:
stage: test
script:
- bash ./unit_test_3.sh
文件说:
阶段中元素的顺序定义了构建执行的顺序:
同一阶段的构建是并行运行的。
上一阶段的作业成功完成后,将运行下一阶段的生成
要并行运行,必须使用相同的阶段名称
您可以这样尝试:
gitlab-ci.yml
stages:
- build
- unit_test_1
- unit_test_2
- unit_test_3
job1:
stage: build
script:
- bash build.sh
job2:
stage: unit_test_1
script:
- bash ./unit_test_1.sh
job3:
stage: unit_test_2
script:
- bash ./unit_test_2.sh
job4:
stage: unit_test_3
script:
- bash ./unit_test_3.sh
stages:
- build
- test
job1:
stage: build
script:
- bash build.sh
job2:
stage: test
script:
- bash ./unit_test_1.sh
job3:
stage: test
script:
- bash ./unit_test_2.sh
job4:
stage: test
script:
- bash ./unit_test_3.sh
文件说:
阶段中元素的顺序定义了构建执行的顺序:
同一阶段的构建是并行运行的。
上一阶段的作业成功完成后,将运行下一阶段的生成
要并行运行,必须使用相同的阶段名称
您可以使用该属性使作业每次都运行,而不管构建之前阶段的作业状态如何
stages:
- build
- test
job1:
stage: build
script:
- bash build.sh
job2:
stage: test
when: always
script:
- bash ./unit_test_1.sh
job3:
stage: test
when: always
script:
- bash ./unit_test_2.sh
job4:
stage: test
when: always
script:
- bash ./unit_test_3.sh
此外,如果您想确保永远不会有作业并行运行,那么您可以配置具有并发限制的运行程序
配置它将限制所有运行程序在所有运行程序之间仅并发运行一个作业
配置该属性将限制该运行程序在每个生成令牌上仅并发运行1个作业。您可以使用该属性使作业每次运行,而不管生成的先前阶段的作业状态如何
stages:
- build
- test
job1:
stage: build
script:
- bash build.sh
job2:
stage: test
when: always
script:
- bash ./unit_test_1.sh
job3:
stage: test
when: always
script:
- bash ./unit_test_2.sh
job4:
stage: test
when: always
script:
- bash ./unit_test_3.sh
此外,如果您想确保永远不会有作业并行运行,那么您可以配置具有并发限制的运行程序
配置它将限制所有运行程序在所有运行程序之间仅并发运行一个作业
配置它将限制该运行程序在每个生成令牌上仅并发运行1个作业。是的,我已经尝试过。但它将执行所有作业job2、job3和job4。我不想并行执行。这将造成资源短缺。我想执行所有脚本。但是,如果第一个阶段不成功,那么它将跳过其他阶段。在这种情况下,如果您希望一个名为
test
的阶段并运行所有测试作业(顺序:不并行),则可能需要allow\u failure
(我不知道如何编辑注释)即使有些失败,您也需要在我建议您使用的解决方案docs.gitlab.com/ce/ci/yaml/README.html中添加依赖项
和允许失败
ILURE您可以将所有作业添加到同一阶段,但仍然可以通过向运行程序添加并发作业限制1来防止它们并行运行。你可以限制到,或者。是的,我试过这个。但它将执行所有作业job2、job3和job4。我不想并行执行。这将造成资源短缺。我想执行所有脚本。但是,如果第一个阶段不成功,那么它将跳过其他阶段。在这种情况下,如果您希望一个名为test
的阶段并运行所有测试作业(顺序:不并行),则可能需要allow\u failure
(我不知道如何编辑注释)即使有些失败,您也需要在我建议您使用的解决方案docs.gitlab.com/ce/ci/yaml/README.html中添加依赖项
和允许失败
ILURE您可以将所有作业添加到同一阶段,但仍然可以通过向运行程序添加并发作业限制1来防止它们并行运行。您可以将其限制为,或。