我有一些代码使用模板循环遍历一些值。 我的问题是所有作业都是随机运行的,所以我想创建一些依赖项,但是因为它们处于 for 循环中,我无法弄清楚如何命名作业步骤然后使用“dependsOn”选项。此外,如果我尝试对作业名称进行硬编码,则会出现重复的作业名称错误。
patch-tasks.yml
jobs:
- job: '${{ parameters.sqlserver }}_A'
displayName: '${{ parameters.sqlserver }}--set-up-stuff'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Patchgroup '${{ parameters.patchgroup }}'"
Write-Host "sqlserver '${{ parameters.sqlserver }}'"
- job: '${{ parameters.sqlserver }}_B'
displayName: '${{ parameters.sqlserver }}--set-up-morestuff'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Patchgroup '${{ parameters.patchgroup }}'"
Write-Host "sqlserver '${{ parameters.sqlserver }}'"
patch-template.yml
parameters:
- name: sqlservers
type: object
default: []
- name: patchgroup
type: string
default: ''
jobs:
- ${{ each sqlserver in parameters.sqlservers }}:
- template: patch-tasks.yml
parameters:
sqlserver: ${{ sqlserver }}
patchgroup: ${{ parameters.patchgroup }}
管道脚本
trigger: none
parameters:
- name: InstanceArgs
type: object
default: []
variables:
patchgroup: test
jobs:
- template: patch-template.yml
parameters:
patchgroup: $(patchgroup)
sqlservers: ${{ parameters.InstanceArgs }}
答案 0 :(得分:1)
管道必须至少包含一项没有依赖关系的作业。因此,您可以尝试在第二个作业中添加依赖项。例如:
jobs:
- job: ${{ parameters.sqlserver }}_A
displayName: '${{ parameters.sqlserver }}--set-up-stuff'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Patchgroup '${{ parameters.patchgroup }}'"
Write-Host "sqlserver '${{ parameters.sqlserver }}'"
- job: ${{ parameters.sqlserver }}_B
displayName: '${{ parameters.sqlserver }}--set-up-morestuff'
dependsOn: ${{ parameters.sqlserver }}_A
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Patchgroup '${{ parameters.patchgroup }}'"
Write-Host "sqlserver '${{ parameters.sqlserver }}'"
根据您的配置,您的作业名称应该不同。当我使用与您相同的作业名称时,我没有收到重复的作业名称错误。这是我的结果: