是否可以为一个CI构建使用多个gitlab运行程序?

t1m*_*app 4 gitlab gitlab-ci gitlab-ci-runner

有一个项目有很多测试,运行它们大约需要20分钟.不幸的是,它们不可能在一个gitlab运行器中并行.我想知道是否有任何良好的实践来启动具有相同环境但不同的测试套件的多个gitlab运行器?

tmt*_*tmt 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'
Run Code Online (Sandbox Code Playgroud)

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

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

  • concurrent =所有参赛者并行运行的工作总数
  • limit (为每个跑步者设置)=由一个特定跑步者并行运行的作业数量

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

  • 感谢您指出`concurrent`选项,这是我的配置失败 (3认同)