为什么我在此 GitHub 操作中收到“Unexpected value ''”错误?

Old*_*Pro 10 github-actions

我有一个像这样的 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"
Run Code Online (Sandbox Code Playgroud)

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

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

为什么这一行无效?我如何解决它?

小智 14

如果您使用的是可重用工作流程,请确保您没有将工作流程传递runs-on给作业。usesruns-on包含在工作流文件本身中,而不是在顶级作业中。

工作流程无效。.github/workflows/REDACTED.yml(行:123,列:5):意外值“使用” .github/workflows/REDACTED.yml(行:124,列:5):意外值“with”


Old*_*Pro 4

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

NULL: ${{ matrix.beta-version }}
Run Code Online (Sandbox Code Playgroud)

就好像它是

'': ${{ matrix.beta-version }}
Run Code Online (Sandbox Code Playgroud)

更改NULLnull没有帮助。(旁注,env在不区分大小写的比较中进行比较时,键 必须是唯一的,这意味着您不能同时拥有FOOfoo,即使在设置环境变量名称时保留了大小写。)

最好的修复/解决方法是避免使用“NULL”并使用其他内容,例如“NIL”。但是,如果必须使用“NULL”,可以将其放在引号中:

"NULL": ${{ matrix.beta-version }}
Run Code Online (Sandbox Code Playgroud)