首页 > 解决方案 > 为什么我在此 GitHub 操作中收到“Unexpected value ''”错误?

问题描述

我有一个这样的 GitHub 操作步骤(从较大的test.yml文件中提取):

    steps:
    - name: Parse
      shell: bash
      env:
        TYPE: ${{matrix.package-type}}
        BV: ${{matrix.builder-version}}
        # This comment is line 63, the "#" is in column 9
        NULL: ${{ matrix.beta-version }}
      run: |
        echo TYPE is "$TYPE"
        echo BV is "$BV"
        printf "Null is '%s'\n" "$NULL"

当我运行它时,我收到以下错误:

The workflow is not valid. .github/workflows/test.yml (Line: 64, Col: 9): Unexpected value ''

为什么这条线无效?我如何解决它?

标签: github-actions

解决方案


事实证明,在 GitHub 操作 YAML 解析器中存在一些将其NULL视为特殊标记的怪癖。我猜它解析

NULL: ${{ matrix.beta-version }}

好像它是

'': ${{ matrix.beta-version }}

更改NULLnull无济于事。(旁注,env在不区分大小写的比较中进行比较时,键 to 必须是唯一的,这意味着您不能同时拥有FOOand foo,即使在设置环境变量名称时会保留大小写。)

最好的修复/解决方法是避免使用“NULL”并使用其他东西,例如“NIL”。但是,如果您必须使用“NULL”,则可以通过将其放在引号中来实现:

"NULL": ${{ matrix.beta-version }}

推荐阅读