Я немного подправил ваш пример, чтобы он работал:
# my-template.yml
parameters:
pf: []
steps:
- ${{ each pf in parameters.pf }}:
- script: echo ${{ pf.rid }} ${{ pf.output }}
displayName: 'Publish ${{ pf.rid }} ${{ pf.output }}'
# azure-pipelines.yml
steps:
- template: my-template.yml
parameters:
pf:
# windows
- rid: 'win-x64'
output: 'Foo.exe'
# macos
- rid: 'osx-x64'
output: 'foo'
Более подробную информацию можно найти здесь об итеративной вставке шаблонов.
Хотя я подозреваю, что то, что вы хотите сделать, может быть лучше достигнуто с помощью strategy
и matrix
, например:
# azure-pipelines.yml
strategy:
matrix:
windows:
imageName: "vs2017-win2016"
output: 'Foo.exe'
macos:
imageName: 'macos-10.13'
output: 'foo'
pool:
vmImage: $(imageName)
steps:
- script: echo $(output)
displayName: 'Publish'
Более подробную информацию можно найти здесь о сборке на нескольких платформах..