有一个项目有很多测试,运行它们大约需要20分钟。不幸的是,它们不可能在一个gitlab运行器中并行。我想知道是否有任何好的做法可以启动多个具有相同环境但不同的测试套件的gitlab跑步者?
答案 0 :(得分:13)
如果您可以将测试套装分成几个部分,则可以在同一阶段创建相同数量的作业( test )。 同一阶段的工作并行运行,但下一阶段的工作将在上一阶段的工作完成后开始。 即使你只有一名选手,他们也会并行运行。让我们假设这个测试用例:
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之后完成。
调整选手'settings( /etc/gitlab-runner/config.toml )检查2个选项:
concurrent
=所有参赛者并行运行的作业总数limit
(为每个跑步者设置)=由一名特定跑步者并行运行的作业数注意:我没有测试过具有多个运行程序的项目(每个运行程序都设置为limit
)是否会使用不同的运行程序运行这些作业。但是,我认为它是这样工作的。