我想对作为参数传递的字符串数组执行一些操作(发布)。 关键是,此参数是动态的:
# pipeline.yml
- job: MyJob
pool:
[...]
steps:
- pwsh: |
$affected = ['app-one', 'app-two'] # Here I hardcoded the array but in my real code this is set dynamically
Write-Host "##vso[task.setvariable variable=affected;isOutput=true]$affected"
name: setAffected
displayName: 'Settings affected'
- template: ./build.yml
parameters:
affected: $[ dependencies.Affected.outputs['setAffected.affected'] ] # Here I pass the array of string to the template
# build.yml
parameters:
affected: ''
jobs:
- job: Build
condition: succeeded('Affected')
dependsOn: Affected
pool:
[...]
variables:
affected: ${{ parameters.affected }}
steps:
- ${{each app in $(affected)}}:
- pwsh: |
Write-Host "${{app}}"
- ${{each app in parameters.affected}}:
- pwsh: |
Write-Host "${{app}}"
${{each app in $(affected)}}
或${{each app in parameters.affected}}
都不起作用...
我该如何管理对每个数组项执行的某些操作?
谢谢
答案 0 :(得分:1)
在模板表达式中,您可以访问参数 包含传入参数值的上下文。 此外,您还可以访问包含以下内容的变量上下文 YAML文件中指定的所有变量以及系统 变量。 重要,它没有运行时变量 就像存储在管道上或在开始运行时给出的那样。 模板扩展在运行的早期就发生了,因此这些变量 没有。
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops