我希望能够处理数组..运行该作业多次(与数组中的项目一样多) - 但我需要下一个作业依赖于最后一个作业。
如何将数组中最后一个元素的值放入下一个作业的 dependsOn:
参数中?有可能吗?如果不是,那么我如何使下一个作业取决于上一个作业最后一次运行的成功?
parameters:
- name: solutionName
type: object
default: ['entry1', 'entry2']
variables:
- group: 'Key Vault Test'
- name: Var1
value: 'lol'
trigger:
- main
jobs:
- ${{each Solution in parameters.SolutionName}}:
- job: Job_${{Solution}}
displayName: ${{Solution}}
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo $(Var1)
echo ${{Solution}}
echo ${{join(' ',parameters.SolutionName)}}
- job: Job_2
dependsOn: HOW_DO_I_PUT_JOB_NAME_IF_I_DONT_KNOW_IT
displayName: Job2
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo 'Second Job'
最佳答案
您可以使用另一个 each
来定义第二个作业中的依赖项列表:
jobs:
- ${{each Solution in parameters.SolutionName}}:
- job: Job_${{Solution}}
displayName: ${{Solution}}
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo $(Var1)
echo ${{Solution}}
echo ${{join(' ',parameters.SolutionName)}}
- job: Job_2
dependsOn:
- ${{each Solution in parameters.SolutionName}}:
- Job_${{Solution}}
displayName: Job2
pool:
vmImage: ubuntu-latest
steps:
- script: |
echo 'Second Job'
请注意,第一个 each
循环中的“最后”作业并不是确定的事情;这些作业都将并行运行,因此它们中的任何一个都可能首先完成或最后完成。因此,为了让你的第二项工作等待它们全部完成,它需要对它们中的每一个都有显式的依赖。
关于azure-devops - 如何使 yaml 管道依赖在前一个循环的上下文中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72263376/