【问题标题】:Included file does not have a valid YAML syntax包含的文件没有有效的 YAML 语法
【发布时间】:2022-12-22 22:28:55
【问题描述】:

我包括一个远程 .gitlab-ci.yml 文件

variables:
   ENTITY_NAME: $CI_PROJECT_TITLE

include:
   remote: 'https://gitlab.com/paulblart/paul_test/-/main/.gitlab-ci.yml'

但是在 CI Lint GUI 中检查它的 YAML 语法是这样说的

包含文件“https://gitlab.com/paulblart/paul_test/-/main/.gitlab-ci.yml”没有有效的 YAML 语法!

但是在检查远程文件的 .gitlab-ci.yml 语法时它是有效的。我不确定发生了什么。

【问题讨论】:

  • AFAIU URL https://gitlab.com/paulblart/paul_test/-/main/.gitlab-ci.yml 不指向 YAML 文件,它指向一个网页。我想它一定是https://gitlab.com/paulblart/paul_test/-/raw/main/.gitlab-ci.yml
  • 语法是固定的!我一直在关注文档,但它从来没有提到拥有文件的原始实例。谢谢@phd
  • 过时的文档? URL格式后来改了?

标签: gitlab continuous-integration


【解决方案1】:

我有这个问题的解决方法

include:
   - project: "my-project-with-yml/project-name"
     ref: master
     file: "/yml/.gitlab-ci.yaml"
     rules: ## Optional, to show the support to **rules**
     - if: $variable == "condition "

我也面临 YAML 错误的问题,即使 lint 是绿色的。

【讨论】:

  • 谢谢!你节省了我数小时的挖掘时间。这也是我的问题!我的 CICD 模板的名称很长,看起来 GitLab 并没有像 ashish-bustler 提到的那么好。只是想添加一个 link to the documentation page 作为在 include 子句下使用 project 子句的示例
【解决方案2】:

在我的案例中,我看到了不同版本的问题,我试图将 CI/CD 配置文件设置为指向另一个项目,该项目具有相对较长的有效 yaml 文件名称。我检查了 linting,文件是 yaml 但在尝试运行管道时抛出的错误是: 包含的文件 .gitlab-ci-a-very-long-gilabci-file.yml@group/subgroup/pipeline-project 没有 YAML 扩展名!

缩短名称解决了它,Gitlab 可以改进错误消息。 只是添加,因为我没有在 Stackoverflow 上找到它。

【讨论】:

    【解决方案3】:

    当我试图访问一个不公开的 gitlab 组时出现了这个错误,所以我无权查看该文件。

    在那种情况下,非常没有信息的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 2021-11-16
      • 2014-05-17
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多