You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab dynamic child pipelines创建失败:报错“生成的流水线为空”求助

GitLab动态子流水线报错“下游流水线为空”的解决办法

问题分析

你遇到的报错Downstream pipeline can not be created, The resulting pipeline would have been empty,核心原因是子流水线中的作业没有配置符合当前触发上下文的规则。

当父流水线通过merge_request_event触发时,子流水线的CI_PIPELINE_SOURCE环境变量值为parent_pipeline,而非merge_request_event。如果子流水线的作业没有显式配置rules,GitLab会默认过滤掉这些作业,导致子流水线无任务可执行。

解决方案

修改你的子流水线模板文件.gitlab/child-pipeline-template.yml,为每个作业添加规则,允许其在父流水线触发时运行:

# .gitlab/child-pipeline-template.yml
job1:
  script:
    - echo job1
  rules:
    - if: $CI_PIPELINE_SOURCE == "parent_pipeline"

job2:
  script:
    - echo job2
  rules:
    - if: $CI_PIPELINE_SOURCE == "parent_pipeline"

如果希望这些作业在任何子流水线触发场景下都运行,也可以简化为:

# .gitlab/child-pipeline-template.yml
job1:
  script:
    - echo job1
  rules:
    - when: always

job2:
  script:
    - echo job2
  rules:
    - when: always

验证步骤

  1. 提交修改后的模板文件到你的feature分支
  2. 触发合并请求的流水线,观察子流水线是否正常创建并执行job1和job2

额外说明

你的父流水线配置(生成子流水线配置文件、传递artifact、触发子流水线)是正确的,无需调整。后续替换为脚本生成generated-config.yml时,只需确保生成的作业同样包含符合上下文的rules即可。

内容的提问来源于stack exchange,提问作者Dev Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:32:42