是否可以为一个 CI 构建使用多个 gitlab runner?

Is it possible to use multiple gitlab runners for one CI build?

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

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

stages:
  - test

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

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

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

调整 运行ners' settings (/etc/gitlab-runner/config.toml) 检查 2 个选项:

  • concurrent = 所有 运行 人
  • 并行工作的总数 运行
  • limit(为每个 运行ner 设置)= 一个特定 运行ner
  • 并行的作业数 运行

注意:我还没有测试过一个项目是否有多个 运行 人,每个人都将 limit 设置为 1,运行 这些工作是否会使用不同的 运行 人。但是,我认为它是这样工作的。