I have a Yaml template for DEV,ACC,PRD for Azure Data Factory. I also have one for a Web App.
I would want an extra option to deploy these together in one Yaml through inheritance(or re-use). So that I can deploy them individually or in group. Is it possible?
This is the sample of my yaml template a
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'
This is the build part(not all parameters added)
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 }}'
You can use parameters and conditions in your yaml file:
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'
You can choose the stages you want to run when running pipelines.