首页/开发/CI/CD 与发布速查/DAG 依赖加速(needs)
流水线设计54 条

DAG 依赖加速(needs)

用依赖图替代「整阶段等待」:作业只等自己真正需要的上游,关键路径缩短,反馈更快。

CI/CD 与发布速查开发更新于 2026-10-12
GitLabneeds 指定上游作业,可跨阶段提前运行
GitHubjobs.<id>.needs 构成 DAG,未列 needs 的作业并行
效果阶段内并行 + 阶段间解耦,整体时长按关键路径收敛

GitLab needs

GitLab needs
test:app:
  stage: test
  needs: ["build:app"]
  script: make test-app

GitHub needs

GitHub needs
jobs:
  test:
    needs: build
    runs-on: ubuntu-latest
needs 会限定作业可见的产物集合;引用未声明依赖的产物会在早期报错。

易错点

  • 只按 needs 拆解却忽略资源竞争:大量作业同时抢占 Runner 反而排队,应配合并发上限与资源组
  • needs 指向的作业因 rules 未生成:报「需要的作业不存在」,规则要联动调整

数据来源与参考

  • GitLab Docs《Needs》
  • GitHub Docs《Using jobs》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌