6

有一个项目有很多测试,运行它们大约需要 20 分钟。不幸的是,不可能在一个 gitlab 运行器中并行它们。我想知道是否有什么好的做法可以在相同的环境下启动多个 gitlab 运行器,但测试套件不同?

4

1 回答 1

13

如果您可以将测试服拆分为多个部分,则可以在同一阶段(测试)创建相同数量的作业。同一阶段的作业并行运行,但下一阶段的作业将在前一阶段的作业完成后开始。即使您只有一个跑步者,它们也会并行运行。让我们假设这个测试用例:

stages:
  - test

testsA:
  stage: test
  script:
    - sleep 60
    - echo 'Test set A done'

testsB:
  stage: test
  script:
    - sleep 30
    - echo 'Test set B done'

您将看到它们同时运行,并且测试 A 将在测试 B 之后完成。

调整跑步者的设置/etc/gitlab-runner/config.toml)检查 2 个选项:

  • concurrent= 在所有运行器中并行运行的作业总数
  • limit(为每个跑步者设置)= 一个特定跑步者并行运行的作业数

注意:我尚未测试具有多个运行器(每个运行器都limit设置为 1)的项目是否会使用不同的运行器运行这些作业。但是,我认为它是这样工作的。

于 2016-05-18T10:42:57.130 回答