Travis-CI的.travis.yml配置文件是否支持YAML指令?

时间:2016-11-02 07:31:36

标签: yaml travis-ci

YAML支持一种称为指令的语言功能,如here所示,我试图使用的特定指令是version指令。该指令只是放在YAML文档开头的字符串“%YAML 1.1”,其中 1.1 是文档兼容的YAML规范版本。通过标记我的文档的YAML版本,我正在寻求YAML配置内容的明显清晰。

Travis-CI开发人员为通过travis-yaml gem的“dogfooding”提供的Travis-CI配置文件开发了a very nice linting tool。这个linter能够提供特定的错误和错误位置 - 这对于验证.travis.yml文件是否有效非常有帮助,并且在配置我的Travis-CI构建作业时我非常自由地使用它。尽管使用YAML指令是有效的YAML,travis-yaml linter说使用该指令是一个错误(它甚至拒绝读取文档的其余部分!)

基本上,我的问题是关于上面的YAML指令以及Travis-CI对此指令的支持。 Travis-CI是否支持有效的YAML指令,例如“%YAML 1.2”? .travis.yml文件是否实际上使用了一个有点不兼容的YAML解析器,该解析器被配置为专门用于解析.travis.yml而不是简单地作为普通的YAML解析器?

1 个答案:

答案 0 :(得分:1)

linting工具可以毫无问题地验证以下YAML:

%YAML 1.1
---
language: python
python:
  - "2.7"
  - "3.5"
  - "3.6"
# command to run tests
script: nosetests

所以我怀疑你的YAML有某种错误(你是否忘记了---与文档其余部分的分离指令?)。

请注意,travis linter不支持YAML 1.2(2009年规定)仅使用较旧的YAML 1.1规范。如果您在上面的YAML文件中将1.1更改为1.2,则内容会给出found incompatible YAML document at line 1 column 1并错误地调用语法错误