【问题标题】:Azure devops complains about the syntax loopAzure devops 抱怨语法循环
【发布时间】:2021-01-21 18:37:56
【问题描述】:
我有一些语法问题,但看起来不错。我找不到错误
trigger: none
pool:
vmImage: 'ubuntu-18.04'
parameters:
- name: themeNames
values:
- '1'
- '2'
- '3'
stages:
- stage: dev
displayName: Dev
jobs:
- job: Deploy
steps:
- ${{ each parameter in parameters.themeNames }}:
- template: build.yml
parameters:
themeName: ${{ parameter }}
怎么了?
现在我使用这样的解决方案,但我不喜欢它
阶段:
- 阶段:开发显示名称:开发工作:
- 工作:部署
脚步:
- 模板:build.yml
参数:
主题名称:'1'
- 模板:build.yml
参数:
主题名称:'2'
- 模板:build.yml
参数:
主题名称:'3'
【问题讨论】:
标签:
azure-devops
azure-devops-yaml
【解决方案1】:
我的解决方案:使用一个参数运行管道是使用类型对象。
pool:
vmImage: 'ubuntu-18.04'
parameters:
- name: themeNames1
type: object
default:
- 1
- 2
- 3
stages:
- stage: dev
displayName: Dev
jobs:
- job: Deploy
steps:
- ${{ each parameter in parameters.themeNames1 }}:
- bash: echo " ${{ parameter }}"
它工作正常,但 ADO 仍然抱怨语法。但如果保存并运行。它有效...
【解决方案2】:
请将themeNames的值分成三个不同的参数。否则,运行管道时,themeNames 只有一个值。这是我的示例:
azure-pipelines.yml:
parameters:
- name: themeNames1
default: 1
- name: themeNames2
default: 2
- name: themeNames3
default: 3
stages:
- stage: dev
displayName: Dev
jobs:
- job: Deploy
steps:
- ${{ each parameter in parameters }}:
- template: build.yml
parameters:
themeName: ${{ parameter.value }}
build.yml:
parameters:
- name: themeName
default: ''
steps:
- script: echo ${{ parameters.themeName }}
结果:
你也可以参考loop through parameters和template的文档。