如何在Groovy/Jenkins中循环遍历YAML列表文件

uxh89sit  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(189)

我有一个YAML文件模板,它是这样设置的:

cars:
    - brand: bmw 
      fuel: petrol
      transmission: manual
    - brand: mercedes
      fuel: diesel
      transmission: auto
    - brand: audi
      fuel: electric
      transmission: semi-auto

我正在尝试为Jenkins管道编写一个函数,该函数读取YAML文件,获取每个数组集的品牌、燃料和传输值,并基于每个数组集的这些变量执行命令,我假设它必须是某种循环。
我尝试过使用readYaml,但是在这种情况下,它似乎没有选择第一个“品牌”,并出现错误,不确定这种YAML布局是否适合我的用例
我试过:

def cars = readYaml file = cars.yaml 
def brand = cars[brand]

期望echo brand返回一个品牌名称列表,然后我可以用它来查找该品牌的燃油和变速箱值。

groovy.lang.MissingPropertyException: No such property: mkp for class: WorkflowScript

有什么想法吗?

ugmeyewa

ugmeyewa1#

正确的语法是

def data = readYaml file: "cars.yaml"
def brand = data.cars[0].brand

您可以在管道实用程序步骤文档中找到定义(和示例)。

相关问题