为什么我在此 GitHub 操作中收到"意外值"错误?



我有一个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 ''

为什么这行无效?我怎么修理它?

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

工作流无效。.github/workflows/REDACTED(行:123,Col: 5):意外值'uses' .github/workflows/REDACTED。yml (Line: 124, Col: 5):意外值'with'

原来GitHub动作YAML解析器中有一些奇怪的地方,它将NULL视为一个特殊的令牌。我猜它会解析

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

as if it was

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

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

最好的修复/解决方法是避免使用"NULL"然后用别的词,比如"NIL"。但是,如果必须使用"NULL",则可以将其放在引号中:

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

在我的例子中,这是因为go-version在矩阵部分看起来像这样:

matrix:
go-version: 1.17
os: [ubuntu-latest, macos-latest]

需要改成数组:[1.17]

相关内容

  • 没有找到相关文章

最新更新