首页/开发/CI/CD 与发布速查/GitHub Actions needs 作业依赖
工具链要点63 条

GitHub Actions needs 作业依赖

声明作业之间的依赖:上游失败默认阻断下游;用 if: always() / failure() 调整分支逻辑,同时 needs 是读取上游 outputs 的入口。

CI/CD 与发布速查开发更新于 2026-10-12
写法needs: [build]
默认语义上游失败或跳过则下游跳过
条件if: always() 无论结果都运行
数据needs.<job>.outputs 读取产物值

输出与依赖

输出与依赖
jobs:
  build:
    runs-on: ubuntu-latest
    outputs:
      version: ${{ steps.v.outputs.version }}
    steps:
      - id: v
        run: echo "version=1.9.0" >> "$GITHUB_OUTPUT"
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - run: echo "deploying ${{ needs.build.outputs.version }}"
清理与通知类作业常写 if: always():默认语义会让它们在失败时被跳过。

易错点

  • 步骤未写入 GITHUB_OUTPUT:outputs 为空且难以定位
  • 条件函数与跳过语义嵌套:依赖被跳过时判断结果与直觉不符

数据来源与参考

  • GitHub Docs《Using jobs in a workflow》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌