Здесь вы можете использовать структуру шаблона. При этом вам нужно будет создать отдельные файлы для разных заданий и переменных. Затем вам нужно будет выполнить шаблоны с подходящими файлами шаблонов переменных для каждого этапа.
Структура каталогов Структура каталогов
Конвейер: Этапы конвейера
Среды Среды
Вот пример конвейера:
trigger:
- master
variables:
- name: vmImage
value: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: BuildJob
pool:
vmImage: $(vmImage)
steps:
- template: Jobs/build.yml
- stage: NonProd
displayName: Deploy non prod stage
jobs:
- deployment: DeploymentJob1
pool:
vmImage: $(vmImage)
environment: non-prod
variables:
- template: Variables/non-prod.yml
strategy:
runOnce:
deploy:
steps:
- template: Jobs/deploy.yml
- stage: Prod
displayName: Deploy prod stage
jobs:
- deployment: DeploymentJob2
pool:
vmImage: $(vmImage)
environment: prod
variables:
- template: Variables/prod.yml
strategy:
runOnce:
deploy:
steps:
- template: Jobs/deploy.yml
Jobs / build.yml
steps:
- script: echo I am building!
displayName: 'Run Build'
Jobs / deploy.yml
steps:
- script: echo I am deploying to $(Environment)!
displayName: 'Run Deployment'
Переменные / non-prod.yml
variables:
- name: Environment
value: non-prod
Переменные / prod.yml
variables:
- name: Environment
value: prod