yaml - 我的 GitHub 操作中嵌入式 shell 脚本的 YAML 语法有什么问题?
问题描述
在我的 GitHub 操作工作流中,我有以下部分(在作业/构建/步骤下):
- name: Install/Select GCC and G++
run: |
sudo apt-get install -y gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
echo "CC=/usr/bin/gcc-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CXX=/usr/bin/g++-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CUDAHOSTCXX=/usr/bin/g++-${{ matrix.gcc }}" >> $GITHUB_ENV
GitHub 无法运行它,发出:
工作流文件无效
第 82 行的 yaml 语法有错误
现在,我从另一个存储库中提取了这个相同的代码应该可以工作的存储库......这是怎么回事?
解决方案
这是相关行,从 68 开始,跳过了一些行:
steps:
- uses: actions/checkout@v2
- name: Install CUDA
# .. snip ..
- name: Install/Select GCC and G++
run: |
sudo apt-get install -y gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
echo "CC=/usr/bin/gcc-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CXX=/usr/bin/g++-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CUDAHOSTCXX=/usr/bin/g++-${{ matrix.gcc }}" >> $GITHUB_ENV
- name: CMake configure
steps:
是 YAML 映射的一部分。下一行开始一个 YAML 序列,它缩进了两个空格。因此,该序列在第 82 行以- name: CMake configure
. 我不知道为什么 GitHub 将其显示为第 83 行;如果您将其复制粘贴到编辑器,则该空行不存在。可能是行尾问题,但我懒得启动十六进制编辑器来找出答案。
在任何情况下,在第 82 行,YAML 解析器结束了映射键的值,steps
因此期望另一个映射键或映射结束。但是,它会找到一个序列项。那是你的错误。
您似乎打算将以下序列项作为steps:
. 如果是这样,请将它们缩进到与前面的项目相同的级别。
推荐阅读
- node.js - Amazon Lambda 函数和 Cognito:使用 lambda 函数在现有用户池中添加新用户
- keytool - 当我使用没有 -alias 的 keytool -genkeypair 时发生了什么?
- php - security.yaml 中的防火墙声明顺序是否重要?
- c# - Null 值作为整数
- flutter - 点击文本字段时表单中的 TextFieldBlocBuilder 不起作用
- javascript - 根据数据动态设置SVG的宽高
- javascript - 引用同一个对象
- node.js - fs.statSync 不是函数
- python - 当我尝试移动一个字节时不支持的操作数
- c - 如何在指针中保存多种类型的数据