У меня есть код, который перебирает некоторые значения с использованием шаблонов. Моя проблема заключается в том, что все задания запускаются случайным образом, поэтому я хочу создать некоторые зависимости, но поскольку они находятся в цикле 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 }}'"
патч-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 }}
Конвейер должен содержать хотя бы одно задание без зависимостей. Итак, вы можете попробовать добавить зависимости во втором задании. Например:
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 }}'"
В соответствии с вашей конфигурацией имена ваших заданий должны отличаться. Когда я использовал то же имя задания, что и ваше, я не получал ошибку дублирующего имени задания. Вот мой результат:
Привет, друг, есть ли какие-либо обновления для этой проблемы? Не стесняйтесь, дайте мне знать, если вы все еще заблокированы, я постараюсь помочь :)