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

GitHub Actions矩阵测试:旧set-output输出方式转新环境变量方式的适配求助

GitHub Actions矩阵测试:旧set-output输出方式转新环境变量方式的适配求助

我太懂这种好不容易调通的配置突然要改写法的烦躁了!GitHub Actions弃用set-output改用环境变量输出的调整确实有点折腾,不过针对你这个矩阵配置的场景,修改起来其实很直接,我帮你把代码转成新的写法:

首先,核心的变化是把原来的::set-output命令换成向$GITHUB_OUTPUT写入键值对,其他逻辑(比如矩阵的引用、环境变量定义)完全不需要改动。下面是修改后的完整Workflow代码:

env:
  # JSON variables (used in our strategy/matrix)
  SUPPORTED_PYTHON_VERSIONS: '"python-version":["3.8", "3.9"]'
  SUPPORTED_OPERATING_SYSTEMS: '"os":["ubuntu-latest", "macos-latest", "windows-latest"]'

jobs:
  # The set-env job translates the json variables to a usable format for the workflow specifications.
  set-env:
    runs-on: ubuntu-latest
    outputs:
      py-os-matrix: ${{ steps.set-matrix-vars.outputs.py-os-matrix }}
      # ^ this represents:
      # matrix:
      #   - os: [ubuntu-latest, ...]
      #   - python-version: [3.7, ...]
      os-matrix: ${{ steps.set-matrix-vars.outputs.os-matrix }}
      # ^ this represents:
      # matrix:
      #   - os: [ubuntu-latest, ...]
    steps:
      - id: set-matrix-vars
        run: |
          echo "py-os-matrix={${{ env.SUPPORTED_PYTHON_VERSIONS }},${{ env.SUPPORTED_OPERATING_SYSTEMS }}}" >> $GITHUB_OUTPUT
          echo "os-matrix={${{ env.SUPPORTED_OPERATING_SYSTEMS }}}" >> $GITHUB_OUTPUT

  test-run:
    name: test on ${{ matrix.os }} - ${{ matrix.python-version }}
    needs: set-env
    strategy:
      fail-fast: true
    matrix: ${{ fromJson(needs.set-env.outputs.py-os-matrix) }}

关键改动说明:

  • 移除了旧的::set-output name=xxx::value语法,改用echo "OUTPUT_KEY=OUTPUT_VALUE" >> $GITHUB_OUTPUT的方式
  • 输出的引用逻辑(比如needs.set-env.outputs.py-os-matrix)完全和之前一致,不需要修改
  • 你原来定义的环境变量和矩阵生成逻辑都可以原封不动保留,只是输出步骤的写法变了

如果之后遇到更复杂的输出内容(比如包含换行或特殊字符),可以用printf代替echo来避免格式问题,比如:

printf "py-os-matrix=%s" "{${{ env.SUPPORTED_PYTHON_VERSIONS }},${{ env.SUPPORTED_OPERATING_SYSTEMS }}}" >> $GITHUB_OUTPUT

这样改完之后,你的矩阵测试Workflow就能和之前一样正常运行啦!

备注:内容来源于stack exchange,提问作者PWillms

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:47:48