首页/开发/CI/CD 与发布速查/GitLab CI 的 needs(DAG)
工具链要点63 条

GitLab CI 的 needs(DAG)

让作业不等整个阶段完成:needs 直接声明依赖的作业,形成有向无环图,下游作业在上游就绪后立即开始。

CI/CD 与发布速查开发更新于 2026-10-12
写法needs: [job-a, job-b]
空依赖needs: [] 让作业从流水线开始即运行
跨阶段可依赖较早阶段的任意作业
可视化流水线图中显示依赖箭头

DAG 依赖

DAG 依赖
build:
  stage: build
  script: [make build]

test:
  stage: test
  needs: [build]
  script: [make test]

deploy:
  stage: deploy
  needs: [test]
  script: [make deploy]
DAG 能把长流水线的总时长从「阶段串行」压缩为「依赖链最长路径」。

易错点

  • needs 指向会被 rules 跳过的作业:依赖落空,流水线创建或运行异常
  • 用 needs 绕过同阶段并行假设:上游产物未就绪即开始,需确认依赖真实成立

数据来源与参考

  • GitLab Docs《Needs》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌