Gitlab CI触发子流水线时子流水线部分job被忽略是什么原因?
GitLab CI子流水线仅显示单个Job问题排查
GitLab 子流水线完全支持包含多个Job的完整流水线结构,该问题与子流水线特性无关,属于配置错误导致的异常。
常见原因与排查方案
- 检查YAML缩进合法性:GitLab CI对YAML格式缩进要求严格,若子流水线中某一Job的缩进层级错误,会被识别为上一个Job的属性而非独立Job,直接被忽略。你可以使用GitLab项目自带的CI Lint工具(项目侧边栏「构建」→「流水线编辑器」→「验证」)校验所有CI配置的语法正确性。
- 检查流水线与Job的运行规则匹配情况:首先确认子流水线是否配置了
workflow: rules过滤流水线运行条件,其次检查global-gitlab-ci.yaml的default配置中是否设置了全局Job运行规则,最后确认子流水线单个Job是否配置了only/except/rules过滤条件,比如某一Job设置了仅在main分支运行,你在开发分支触发流水线时该Job就会被自动过滤。 - 检查是否存在Job重名覆盖:如果
include引入的全局配置中存在和子流水线Job同名的配置,同名配置会发生覆盖,若全局配置中对应Job设置了when: never,也会导致子流水线的对应Job不会运行。 - 检查阶段定义匹配情况:确认子流水线顶层的
stages列表中包含了所有Job关联的阶段,且Job的stage字段没有拼写错误,关联到不存在阶段的Job会被GitLab直接忽略。
内容的提问来源于stack exchange,提问作者Datz
相关产品推荐
相关产品推荐

