Azure devops devops管道-对作业名称使用动态参数
我有一些代码使用模板循环遍历一些值。 我的问题是作业都是随机运行的,所以我想创建一些依赖项,但由于它们处于for循环中,我无法确定如何命名作业步骤,然后使用“dependsOn”选项。此外,如果我试图硬编码一个作业名称,我会得到一个重复的作业名称错误 补丁任务.ymlAzure devops devops管道-对作业名称使用动态参数,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我有一些代码使用模板循环遍历一些值。 我的问题是作业都是随机运行的,所以我想创建一些依赖项,但由于它们处于for循环中,我无法确定如何命名作业步骤,然后使用“dependsOn”选项。此外,如果我试图硬编码一个作业名称,我会得到一个重复的作业名称错误 补丁任务.yml jobs: - job: '${{ parameters.sqlserver }}_A' displayName: '${{ parameters.sqlserver }}--set-up-stuff'
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 }}'"
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 }}
补丁模板.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 }}'"
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 }}'"
根据您的配置,您的作业名称应该不同。当我使用与您相同的作业名称时,我没有收到重复的作业名称错误。以下是我的结果:
嗨,朋友,这个问题有更新吗?如果您仍然被阻止,请随时通知我,我将尽力帮助:)