有一个项目有很多测试,运行它们大约需要 20 分钟。不幸的是,不可能在一个 gitlab 运行器中并行它们。我想知道是否有什么好的做法可以在相同的环境下启动多个 gitlab 运行器,但测试套件不同?
问问题
5935 次
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 回答