首页/开发/代码质量与评审速查/yamllint:YAML 语法与风格检查
规范与静态检查65 条

yamllint:YAML 语法与风格检查

yamllint 检查 YAML 的缩进、行宽、truthy 书写等:CI 配置与 Kubernetes manifest 是主要检查对象,规则可在 .yamllint 中定制。

yamllint 是什么

yamllint 检查 YAML 的语法与风格:缩进是否一致、单行是否超宽、布尔值是否用了有歧义的写法、括号与列表是否对齐等。它主要盯 CI 配置与 Kubernetes manifest 这类由机器读取的文件——这类文件出错时往往只报一句解析失败,定位成本高,机器检查比人工评审可靠。

基本信息

检查项缩进、行宽、truthy、括号对齐、行尾空格等
配置文件.yamllint(也可用 -c 指定其他路径)
内置配置default(默认严格)与 relaxed(宽松)
输出格式-f parsable / standard / colored
运行时机本地手动、pre-commit 钩子或 CI

典型使用场景

  • CI 流水线配置提交前校验,避免整条流水线起不来
  • Kubernetes manifest 及多文档文件的缩进一致性检查
  • Ansible playbook、清单文件等运维侧 YAML 的统一风格
  • 用 pre-commit 钩子在提交时拦截,问题不进入仓库
  • 多仓库共享同一份配置,保证风格判定一致
  • 排查缩进看起来一致却解析失败这类隐形字符问题

常用命令

常用命令
yamllint .                            # 检查当前目录下的 YAML 文件
yamllint -c .yamllint ci.yml           # 用指定配置检查单个文件
yamllint -d relaxed .                  # 使用内置的宽松配置
yamllint -f parsable . > yamllint.txt  # 输出便于 CI 解析的格式
pre-commit run yamllint --all-files    # 通过 pre-commit 统一执行

常见检查项

检查项检查内容常见触发
indentation缩进层级与宽度一致同一文件里混用不同缩进
line-length单行最大长度长 URL 或带参数的长命令
truthy布尔值写法规范用 yes / on 而不是 true
trailing-spaces行尾多余空格复制粘贴带入
comments注释符号后的空格与缩进注释紧贴井号、缩进不齐
YAML 对缩进与布尔写法非常敏感:缩进混用制表符会直接解析失败,yes / on 在不同解析器里可能被当作字符串;提交前拦下来,比流水线跑一半失败便宜得多。
配置按场景取舍:Kubernetes manifest 里的长镜像名与 URL 常需要更宽的行长上限,CI 配置可以更严格;把配置文件放进仓库并随文件一起评审,本地编辑器插件与 CI 用同一份配置,结论才不会两样。

易错点

  • 缩进混用制表符:解析直接报错,问题在提交前拦下成本最低
  • 关闭 truthy 检查:yes / on 这类歧义写法混进配置,换解析器后行为可能改变
  • 行宽上限照抄默认值:manifest 里的长 URL 频繁报错,最后整条规则被关掉
  • 配置只存在某个人的机器上:团队风格不统一,检查结果因人而异

数据来源与参考

  • yamllint 官方文档(yamllint.readthedocs.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌