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

如何从另一个Job中打印GitHub Actions的Matrix值?

解决GitHub Actions矩阵值传递并打印全部值的问题

你的问题出在两个地方:一是job1的outputs配置位置错误,二是没有利用矩阵job输出的数组特性收集所有值。以下是修正后的方案:

第一步:修正job1的outputs配置

将outputs放在job的顶级层级(与strategy同级),确保每个矩阵实例都能输出自己的values:

job1:
  runs-on: ubuntu-latest
  env:
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  strategy: 
    matrix:
      values: [val1, val2, val3, val4]
  # 注意:outputs是job的顶级属性,不要放在strategy内
  outputs:
    values: ${{ steps.values_id.outputs.values_array }}
  steps:
    - uses: actions/checkout@v4   
    # 其他步骤...
    - name: Export matrix value
      id: values_id
      run: echo "values_array=${{ matrix.values }}" >> "$GITHUB_OUTPUT"

第二步:在job2中处理并打印所有值

当job1是矩阵运行时,needs.job1.outputs.values会返回一个包含所有矩阵实例输出值的数组,我们可以用GitHub Actions内置函数或shell命令处理成需要的格式:

方式1:打印逗号分隔的形式

使用join函数将数组拼接为逗号加空格分隔的字符串:

job2:
  needs: [job1]
  runs-on: ubuntu-latest
  env:
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  steps:
    - uses: actions/checkout@v4   
    - name: Print comma-separated values
      run: |
        echo "${{ join(needs.job1.outputs.values, ', ') }}"

执行后输出:

val1, val2, val3, val4

方式2:打印换行分隔的形式

用join函数指定换行符作为分隔符:

job2:
  needs: [job1]
  runs-on: ubuntu-latest
  env:
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  steps:
    - uses: actions/checkout@v4   
    - name: Print newline-separated values
      run: |
        echo "${{ join(needs.job1.outputs.values, '\n') }}"

执行后输出:

val1
val2
val3
val4

方式3:用shell循环遍历打印(适合复杂处理)

如果需要对每个值做额外处理,可结合toJSON确保数组正确传递给shell:

job2:
  needs: [job1]
  runs-on: ubuntu-latest
  env:
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  steps:
    - uses: actions/checkout@v4   
    - name: Print values via loop
      run: |
        values=(${{ toJSON(needs.job1.outputs.values) }})
        for val in "${values[@]}"; do
          echo "$val"
        done

原配置只打印最后一个值的原因

  1. outputs位置错误:你将outputs写在了strategy内部,不符合GitHub Actions语法规范,导致输出未正确关联到每个矩阵实例。
  2. 未处理数组输出:矩阵job的输出本身是数组,原代码未利用数组特性,最终只获取到了最后一个实例的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:42:02