如何按条件填充azure pipeline yaml中的列表?
${{ if eq(variables['Build.SourceBranch'], variables['var-1']) }}:
my-list:
- element 1
目前上面的示例有效,但我需要根据不同的条件填充多个值。我希望这样的事情能够发挥作用,但事实并非如此:
my-list:
${{ if eq(variables['Build.SourceBranch'], variables['var-1']) }}:
- element 1
${{ if eq(variables['Build.SourceBranch'], variables['var-2']) }}:
- element 2
${{ if eq(variables['Build.SourceBranch'], variables['var-3']) }}:
- element 3
或者是否可以使用脚本来完成并将其分配给一个字符串数组变量,然后将此变量设置为
my-list
或者是否可以使用脚本来完成此操作并将其分配给一个字符串数组变量,然后将此变量设置为 my-list。
是的,您可以考虑在脚本中设置变量。
例如,我可以使用以下 yaml 根据
$(Build.SourceBranch)
值设置名为 my-list 的变量。
trigger:
- none
pool:
vmImage: ubuntu-latest
steps:
- powershell: |
if ("$(Build.SourceBranch)" -eq "var-1") {
Write-Host "##vso[task.setvariable variable=my-list;isOutput=true]- element 1"
}
elseif ("$(Build.SourceBranch)" -eq "refs/heads/main") {
Write-Host "##vso[task.setvariable variable=my-list;isOutput=true]- element 2"
}
elseif ("$(Build.SourceBranch)" -eq "var-3") {
Write-Host "##vso[task.setvariable variable=my-list;isOutput=true]- element 3"
}
name: setVarStep
- powershell: |
Write-Host $(setVarStep.my-list)
测试结果:
当我针对主分支构建时,
$(setVarStep.my-list)
是- element 2
。现在您可以使用列表中的变量。