GitLab CI不同OS Runner上作业无法并行运行的解决方法咨询
如何让GitLab CI中不同操作系统的作业并行运行
你的配置本身不需要额外添加关键字就能实现并行,作业串行大概率是以下几个原因导致的,逐个排查:
- Runner并发能力不足:每个GitLab Runner的
config.toml里concurrent参数默认是1,意味着单个Runner同一时间只能执行1个作业。如果你的RHEL7和RHEL8各对应一个独立Runner,要确保它们都处于在线状态;如果是同一个Runner对应两个标签,就得把concurrent值设为大于1,让它能同时处理多个作业。 - 作业触发条件未同时满足:只有当你设置变量
TEST="all"时,两个作业才会被同时触发。如果触发流水线时TEST设为rhel7或rhel8,只会跑对应单个作业,自然不存在并行。 - 项目CI并发限制:去项目的「Settings → CI/CD → Pipelines」里检查,有没有设置「Maximum number of concurrent jobs per pipeline」,如果限制为1,作业会被强制串行执行。
验证方法:手动触发流水线时,在变量设置里填TEST=all,然后观察两个作业是否同时进入「running」状态;同时确认对应标签的Runner都是在线且空闲的。
你的当前配置代码:
stages: - test rhel8: stage: test rules: - if: $TEST == "rhel8" || $TEST == "all" tags: - rhel8 script: - echo "Test RHEL 8" rhel7: stage: test rules: - if: $TEST == "rhel7" || $TEST == "all" tags: - rhel7 script: - echo "Test RHEL 7"
内容的提问来源于stack exchange,提问作者Axel Steiner
相关产品推荐
相关产品推荐

