Azure devops 我可以用一个值列表实例化一个模板管道吗?
我们有以下Azure DevOps管道模板:Azure devops 我可以用一个值列表实例化一个模板管道吗?,azure-devops,Azure Devops,我们有以下Azure DevOps管道模板: - stage: DeployToPreprod displayName: 'Deploy to PREPROD' dependsOn: PrepareDeployToPreprod condition: not(eq(variables['Build.Reason'], 'Schedule')) jobs: - template: Scripts/deploy.yaml parameters: t
- stage: DeployToPreprod
displayName: 'Deploy to PREPROD'
dependsOn: PrepareDeployToPreprod
condition: not(eq(variables['Build.Reason'], 'Schedule'))
jobs:
- template: Scripts/deploy.yaml
parameters:
targetHost: SRV-SAF
targetHostDisplayName: SRV_SAF
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: DT1CTX003
targetHostDisplayName: DT1CTX003
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: DT1CTX004
targetHostDisplayName: DT1CTX004
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: VDA-PROD-R01
targetHostDisplayName: VDA_PROD_R01
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: VDA-PROD-R02
targetHostDisplayName: VDA_PROD_R02
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: VDA-PROD-R03
targetHostDisplayName: VDA_PROD_R03
targetEnv: PREPROD
- template: Scripts/deploy.yaml
parameters:
targetHost: VDA-PROD-R04
targetHostDisplayName: VDA_PROD_R04
targetEnv: PREPROD
很容易看出,这基本上是用不同机器名的列表实例化同一个模板。有没有一种方法可以删除一些重复并多次实例化模板,并给出一个列表
有没有一种方法可以删除一些重复并多次实例化模板,并给出一个列表
答案是肯定的
您可以使用来解决此问题:
- stage: DeployToPreprod
displayName: 'Deploy to PREPROD'
dependsOn: PrepareDeployToPreprod
condition: not(eq(variables['Build.Reason'], 'Schedule'))
jobs:
- job: Dev
displayName: Dev
pool:
name: MyPrivateAgent
strategy:
matrix:
dev_1:
targetHost: SRV-SAF
targetHostDisplayName: SRV_SAF
targetEnv: PREPROD
dev_2:
targetHost: DT1CTX003
targetHostDisplayName: DT1CTX003
targetEnv: PREPROD
- template: child.yml #change this to your Scripts/deploy.yaml file
parameters:
targetHost: $(targetHost)
targetHostDisplayName: $(targetHostDisplayName)
targetEnv: $(targetEnv)
Child.yml
:
parameters:
- name: targetHost
type: string
default: false
- name: targetHostDisplayName
type: string
default: false
- name: targetEnv
type: string
default: false
steps:
- script: echo ${{ parameters.targetHost }}
displayName: 'targetHost'
- script: echo ${{ parameters.targetHostDisplayName }}
displayName: 'targetHostDisplayName'
- script: echo ${{ parameters.targetEnv }}
displayName: 'targetEnv'
结果是:
希望这有帮助