所有测试用例都应该在gitlab中运行,而不是第一个失败的测试用例

所有测试用例都应该在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

我正在建立一个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
    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来防止它们并行运行。您可以将其限制为,或。