Azure DevOps 抱怨语法循环

问题描述

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

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

怎么了?

enter image description here

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

阶段:

解决方法

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

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

enter image description here

它工作正常,但 ADO 仍然抱怨语法。但是如果保存并运行。它有效...

enter image description here

,

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

结果:

enter image description here

您也可以参考有关 loop through parameterstemplate 的文档。