Azure devops 抱怨语法循环

Azure devops complains about the syntax loop

我的语法有些问题,但看起来不错。我找不到错误

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 }}

怎么了?

现在我使用这样的解决方案,但我不喜欢它

stages:

  • stage: dev displayName: Dev jobs:
    • job: Deploy steps:
      • template: build.yml parameters: themeName: '1'
      • template: build.yml parameters: themeName: '2'
      • template: build.yml parameters: themeName: '3'

请将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 and template的文档。

我的解决方案:运行带一个参数的管道是使用类型对象。

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 仍然抱怨语法问题。但是如果保存它和运行。有效...