Azure 管道 EACH 问题

Azure pipeline EACH issue

我发现了很多关于在 Azure 管道中使用 EACH 循环的示例,但我发现的所有示例都使用参数作为数组。 使用在代码中创建的数组怎么样? 我的意思是:

  - script: COMMAND=$(npx nx affected:apps --base=$(BASE_SHA) --head=$(HEAD_SHA) --plain) && echo "##vso[task.setvariable variable=APPLICATIONS;]$COMMAND"

  - task: Bash@3
    inputs:
      targetType: 'inline'
      script: |
          echo 'APPLICATIONS + $(APPLICATIONS)'
          readarray -d ' ' -t ARRAYAPPS <<<'$(APPLICATIONS)'
          echo ${ARRAYAPPS[0]}
          echo ${ARRAYAPPS[1]}
  
  - ${{each APPLICATION in $APPLICATIONS }}:
  - task: ...

“如果你在某方面受阻,请尝试改变这种方式” 我修改了方法,并将循环包含在 bash 脚本中:

readarray -d ' ' -t ARRAYAPPS <<<$(APPLICATIONS)
if (( ${#APPLICATIONS[@]} > 0 )); then
  for (( i=0; i<${#APPLICATIONS[@]}; i++ ));
    ...

管道${{each 不支持运行时管道变量。它只支持参数,因为 each 是在编译时评估的;那时,只有参数(和基于它们的变量)可用。