0

我有一个用于 Azure 数据工厂的 DEV、ACC、PRD 的 Yaml 模板。我也有一个用于 Web 应用程序。

我想要一个额外的选项,通过继承(或重用)将这些部署在一个 Yaml 中。这样我就可以单独或分组部署它们。可能吗?

这是我的 yaml 模板的示例

trigger: none

stages:
- stage: DEV
  variables:
    environment: 't'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'
- stage: ACC
  variables:
    environment: 'd'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'
- stage: PRD
  variables:
    environment: 'd'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'

这是构建部分(未添加所有参数)

parameters:
- name: location
  type: string
  default: ''

jobs:
  - deployment: Build
    pool:
        name: Azure Pipelines
        vmImage: windows-2019
    environment: '${{ parameters.devopsEnv }}'
    strategy:
      runOnce:
        deploy:
          steps:
          - checkout: self
          - task: AzureKeyVault@1
            inputs:
              azureSubscription: '${{ parameters. subscription }}'
              keyVaultName: '${{ parameters.keyVaultName }}'
4

1 回答 1

1

您可以在 yaml 文件中使用参数和条件:

parameters:
  - name: DEV
    type: boolean
    default: true
  - name: ACC
    type: boolean
    default: true
  - name: PRD
    type: boolean
    default: true

stages:
- stage: DEV
  condition: eq(${{ parameters.DEV }},'true')
  variables:
    environment: 't'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'
- stage: ACC
  condition: eq(${{ parameters.ACC }},'true')
  variables:
    environment: 'd'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'
- stage: PRD
  condition: eq(${{ parameters.PRD }},'true')
  variables:
    environment: 'd'
    system.debug: true
  jobs :
  - template: shared-build.yml
    parameters:
      location: 'westeurope'

您可以在运行管道时选择要运行的阶段。 在此处输入图像描述

于 2021-02-02T06:14:41.137 回答