Conditions on Azure DevOps provide the flexibility to execute logic based on different environments and setups. You can use the template expression to execute a specific stage based on a variable or parameter that is provided from user input.
Lets take for example the below scenario. We need to deploy on two different environments the uat and production. Logic for these environments is included in the template files that are located inside the repository under pipelines/templates folder.
Based on user input only the stage for the selected environment will be executed.
main.yml
trigger: - none parameters: - name: environment type: string values: - production - uat pool: vmImage: ubuntu-latest stages: - ${{ if eq(parameters.environment, 'production') }}: - template: pipelines/templates/production.yml - ${{ elseif eq(parameters.environment, 'uat') }}: - template: pipelines/templates/uat.yml
production.yml
stages: - stage: production displayName: running production deployment jobs: - job: job1 steps: - script: echo "inside production environment" displayName: print message production task
uat.yml
stages: - stage: uat displayName: running uat deployment jobs: - job: job1 steps: - script: echo "inside uat environment" displayName: print message uat task
Video tutorial on Youtube: