您可以使用类似于-${{ each x in y }}:
的语法在devops管道YAML中创建一个循环。
但是,我发现没有关于each
的文档。
所以我的问题是:如何指定数组?我知道一种方法是使用-${{ each book in parameters.books }}:
,然后传入books
的“列表”,如下所示:
- template: template.yml
parameters:
books:
- book1
- book2
- book3
但是,我还想将数组定义为变量:
variables:
books:
- book1
- book2
- book3
但是,ADO会为此引发错误A sequence was not expected
。
没有办法定义这样的数组吗?我想我应该把它们称为-${{ each book in variables.books }}:
,如果没有,有没有其他方法来指定一个列表?
3条答案
按热度按时间ma8fv8wu1#
不支持将数组定义为变量,变量语法为
variables: { string: string }
。请检查以下情况:https://developercommunity.visualstudio.com/content/problem/812728/variables-in-yaml-pipeline-are-not-allowing-to-def.html
Yaml变量一直是字符串:字符串Map。
我们准备在不久的将来发布一个功能,让你通过更复杂的结构。敬请期待!
目前,只能使用参数传递和循环数组:
nnt7mjpx2#
我克服变量数组限制的方法是将变量值字符串转换为管道中的数组。参数不是一个选项,因为它们在管道运行时暴露给用户。
在变量. prod. yaml中:
在管道中:
嗯。
jjhzyzn03#
你不需要模板就可以有一个for循环,只要使用split函数:
您也可以使用variables对象本身作为Map,但这可能会导致问题。