如何在azuredevops任务中lint yaml文件

问题描述 投票:0回答:1

继续stackoverflow中提供的解决方案我们使用应用程序存储库中的输入yaml文件从开发人员那里获取azure apims策略参数,然后使用yaml解析器将此yaml输入转换为bash变量,然后通过azuredevops任务生成policy.xml文件并更新api之后。这适用于测试场景。

但是,当 yaml 文件由于在 Windows 或浏览器中复制而出现任何意图问题或任何语法/格式问题时,我们会遇到一些意外行为。 因此,在将 input.Yaml 文件传递给 azuredevops 任务之前,寻找一种最佳方法来检查或格式化 input.Yaml 文件。是否有任何 azuredevops 工具或 li ux 离线扩展可以实现此目的?

yaml azure-devops-extensions yamllint
1个回答
0
投票

是否有任何 azuredevops 工具或 li ux 离线扩展可以实现此目的?

恐怕 Azure DevOps 没有内置任务或扩展可以检查或格式化 YAML 文件。

为了满足您的需求,您可以使用以下工具对 yaml 文件进行 lint 或格式化。

1.Lint YAML 文件:yamllint

您可以安装 yamllint 工具并使用它来 lint yaml 文件。

例如:

steps:
- bash: |
   pip install --user yamllint
   
   yamllint test.yml 
  displayName: 'lint yaml file'

当 YAML 格式有问题时,它会在 Pipeline 日志中显示错误。

例如:

2.格式化YAML文件:yamlfmt

您可以在Azure Pipeline中安装yamlfmt工具并使用它来格式化yaml文件。

例如:

steps:
- bash: |
   go install github.com/google/yamlfmt/cmd/yamlfmt@latest
   
   ~/go/bin/yamlfmt test.yml
   
   
  displayName: 'format yaml file'

它将格式化 yaml 文件并让它通过 yaml lint 步骤。

例如:

这两个工具支持在格式化或 linting yaml 文件时使用配置来自定义规则。

© www.soinside.com 2019 - 2024. All rights reserved.