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

GitHub Actions传递SHA至自定义工作流失败原因排查

问题定位与修复方案

核心问题1:prep Job的Outputs格式错误

你当前的prep Job输出定义写错了YAML格式,导致needs.prep.outputs.sha根本没拿到正确值。原写法会让YAML把sha解析为包含子项的映射,而非直接赋值为short-sha的输出结果。

错误写法:

outputs:
  sha:
    ${{ steps.short-sha.outputs.sha }}

正确写法:

outputs:
  sha: ${{ steps.short-sha.outputs.sha }}

核心问题2:prep Job里的SHA打印步骤无效

你prep中的print SHA步骤用了env.SHA引用自身,属于循环引用,根本打不出真实的SHA值,这也是你误以为引用有效的原因。

修复后的print SHA步骤:

- name: print SHA
  run: echo $SHA
  env:
    SHA: ${{ steps.short-sha.outputs.sha }}

额外优化:调用工作流的依赖可以简化

call-other-workflow Job不需要依赖print-sha,直接依赖prep即可,减少不必要的Job执行环节:

call-other-workflow:
  name: call-other-workflow
  needs: [ prep ]
  uses: ./.github/workflows/other_workflow.yml
  with:
    commit-hash: ${{ needs.prep.outputs.sha }}

完整修复后的调用方工作流

name: "call other workflow"

on:
  push

jobs:

  #------------------------------------
  prep:
    name: prep
    runs-on: ubuntu-latest
    outputs:
      sha: ${{ steps.short-sha.outputs.sha }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.1
        with:
          submodules: recursive
      - name: Short-Sha
        uses: benjlevesque/short-sha@v3.0
        id: short-sha
        with:
          length: 8
      - name: print SHA
        run: echo $SHA
        env:
          SHA: ${{ steps.short-sha.outputs.sha }}

  #------------------------------------
  print-sha:
    name: print-sha
    needs: [ prep ]
    runs-on: ubuntu-latest
    steps:
      - name: print SHA
        run: echo $SHA
        env:
          SHA: ${{ needs.prep.outputs.sha }}

  #------------------------------------
  call-other-workflow:
    name: call-other-workflow
    needs: [ prep ]
    uses: ./.github/workflows/other_workflow.yml
    with:
      commit-hash: ${{ needs.prep.outputs.sha }}

修改完成后,被调用的工作流就能正确接收到prep Job输出的SHA值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:07:38