我的 GitHub 操作中嵌入的 shell 脚本的 YAML 语法有什么问题?

What's wrong with my YAML syntax for an embedded shell script in my GitHub action?

在我的 GitHub 操作 workflow 中,我有以下部分(在 jobs/build/steps 下):

      - 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 无法 运行 发出:

Invalid workflow file

You have an error in your yaml syntax on line 82

现在,我从另一个存储库中提取了这个 same code 据说可以工作...发生了什么事?

这是相关行,从 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: 的一部分。如果是这样,将它们缩进到与前面的项目相同的水平。