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

如何在GitHub Action变量中定义可用于工作流的元素列表?

在GitHub Actions中使用列表类型的配置变量

GitHub的配置变量(不管是仓库级还是组织级)仅支持字符串类型,没法直接存储列表,得通过字符串模拟再解析的方式实现。这里提供两种可行的方案:

方案一:逗号分隔字符串+split函数拆分

  1. 设置变量:在仓库/组织的「Settings → Secrets and variables → Actions」里添加变量,值用纯逗号分隔,不要加引号或方括号:
    TEST_OS_VERSIONS=ubuntu,ubuntu-20.04,windows-latest
    
  2. 工作流中使用:用split()函数把字符串拆成列表,直接给矩阵使用:
    jobs:
      test-job:
        runs-on: ${{ matrix.os }}
        strategy:
          matrix:
            os: ${{ split(vars.TEST_OS_VERSIONS, ',') }}
        steps:
          - name: Run test
            run: echo "Testing on ${{ matrix.os }}"
    

方案二:换行分隔字符串(适合含特殊字符的元素)

如果你的列表元素里包含逗号这类分隔符,用换行分隔更稳妥:

  1. 设置变量:每个元素单独占一行:
    ubuntu
    ubuntu-20.04
    macos-13
    
  2. 工作流中使用:用split()按换行符拆分:
    matrix:
      os: ${{ split(vars.TEST_OS_VERSIONS, '\n') }}
    

为什么之前的写法无效?

你之前尝试给变量加引号、方括号(比如"ubuntu", "ubuntu-20.04"或["ubuntu", "ubuntu-20.04"]),GitHub会把整个内容当成单一字符串,没法自动解析成YAML列表。必须用纯分隔符的字符串,再通过split()函数主动转换成列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:25:15