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 是在编译时评估的;那时,只有参数(和基于它们的变量)可用。
我发现了很多关于在 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 是在编译时评估的;那时,只有参数(和基于它们的变量)可用。