【问题标题】:GitHub Actions - You have an error in you YAML syntaxGitHub Actions - 您的 YAML 语法有错误
【发布时间】:2021-06-21 15:02:17
【问题描述】:

我的操作有以下 YAML 规范:

name: Build and test

on: [push, pull_request]

env:
  buildDir: ${{ github.workspace }}/build/

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-18.04, ubuntu-20.04, windows-2019, macos-10.15]
        include:
          - os: ubuntu-18.04
            triplet: x64-linux
          - os: ubuntu-20.04
            triplet: x64-linux
          - os: windows-2019
            triplet: x64-windows
          - os: macos-10.15
            triplet: x64-osx

    runs-on: ${{ matrix.os }}

  steps:
  - uses: actions/checkout@v2

我确认这通过了https://yamlvalidator.com/ 的验证。然而 GitHub 在第 27 行(最后一行)告诉我我的 YAML 语法有错误。我尝试了该部分的各种不同缩进,但都产生相同的结果。
此外,我尝试删除上面的矩阵块并使用 4 而不是 2 个空格来缩进所有内容,但这些更改也无法解决错误。

我完全不知道这里发生了什么。任何提示将不胜感激。

【问题讨论】:

  • Per docs.github.com/en/actions/reference/… 作业没有带有数组值的顶级 steps 键 - steps 被解释为作业 ID,但作业是对象。
  • @jonrsharpe 我可以发誓我之前测试过。但似乎那个版本还有另一个缺陷。我刚刚再次尝试将整个steps 块缩进一级,现在它正在工作。谢谢!
  • @Moderator:这个问题可以关闭为“由错字引起”(不是真正的错字,但总体情况是一样的)

标签: yaml github-actions


【解决方案1】:

正如 jonsharpe 在 cmets 中提到的,问题不是 YAML 语法错误(如错误消息所示),而是 GitHub 操作细节的语义错误:steps 块缩进不够远。

这是更正的版本:

on: [push, pull_request]

env:
  buildDir: ${{ github.workspace }}/build/

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-18.04, ubuntu-20.04, windows-2019, macos-10.15]
        include:
          - os: ubuntu-18.04
            triplet: x64-linux
          - os: ubuntu-20.04
            triplet: x64-linux
          - os: windows-2019
            triplet: x64-windows
          - os: macos-10.15
            triplet: x64-osx

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2016-01-24
    • 2020-03-10
    • 2018-08-29
    • 2019-08-29
    • 2023-04-07
    相关资源
    最近更新 更多