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

如何在GitHub Workflow中获取传递依赖的Job输出?

GitHub Workflow传递依赖Job输出访问方案

在GitHub Actions中,只有直接被当前Job的needs声明的前置Job,才能被访问其输出——传递依赖的Job输出不会自动向下暴露。要在somethingElseAgain中访问build的输出且不修改依赖链,最稳妥的方式是通过中间JobsomethingElse转发输出。

具体实现

修改somethingElse的配置,添加outputs字段,将build的输出直接转发出去:

jobs:
  build:
    name: Build Application
    runs-on: ubuntu-22.04
    container:
      image: some-image
    outputs:
      POM_VERSION: ${{ steps.variables.outputs.POM_VERSION }}
      JAR_PROJECT_VERSION: ${{ steps.variables.outputs.JAR_PROJECT_VERSION }}
    steps:
      # ... 填充输出的原有步骤

  somethingElse:
    name: Do Something Else
    needs: [build]
    runs-on: ubuntu-22.04
    container:
      image: some-image
    # 转发build的输出,供后续Job使用
    outputs:
      POM_VERSION: ${{ needs.build.outputs.POM_VERSION }}
      JAR_PROJECT_VERSION: ${{ needs.build.outputs.JAR_PROJECT_VERSION }}
    steps:
      # ... 原有执行步骤

  somethingElseAgain:
    name: Do Something Else Again
    needs: [somethingElse]
    runs-on: ubuntu-22.04
    container:
      image: some-image
    steps:
      - name: 使用build的输出
        run: echo "JAR项目版本:${{ needs.somethingElse.outputs.JAR_PROJECT_VERSION }}"

方案说明

  • 这种方式保持了原有的依赖链逻辑,somethingElseAgain仍只依赖somethingElse,不会让工作流可视化图变得混乱。
  • 转发的输出完全继承自build,后续Job无需感知底层依赖的存在,符合模块化的设计思路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:34:56