I go to UI and do the following
Azure UI:
Pipelines --> MyPipeline --> Variables -->
excludedProjs = 'Proj1,Proj2,Proj3'
I proceed with the following in the yml file:
variables:
- name: doDeployment
value: $[and(ne(variables['Build.Reason'], 'PullRequest'), or(eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.SourceBranch'], '${{ parameters.triggerBranch }}')))]
- name: doProj1Deployment
value: $[and(variables['doDeployment'], ne('${{ containsValue(split({excludedProjs_set_from_ui}, ','), 'Proj1') }}', 'true'))]
- name: doProj2Deployment
value: $[and(variables['doDeployment'], ne('${{ containsValue(split({excludedProjs_set_from_ui}, ','), 'Proj2') }}', 'true'))]
- name: doProj3Deployment
value: $[and(variables['doDeployment'], ne('${{ containsValue(split({excludedProjs_set_from_ui}, ','), 'Proj3') }}', 'true'))]
- name: doProj4Deployment
value: $[and(variables['doDeployment'], ne('${{ containsValue(split({excludedProjs_set_from_ui}, ','), 'Proj4') }}', 'true'))]
the problem is that I can't get it working after like 15 iterations. I just want to provide a list of projects to exclude the jobs related to them in the pipeline from running. is there a way to do this?
Azure DevOps doesn't support a containsValue function out of the box. You'll need to modify your logic to make it work. Here's a revised example using in for string matching: yaml variables: - name: doDeployment value: $[and(ne(variables['Build.Reason'], 'PullRequest'), or(eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.SourceBranch'], '${{ parameters.triggerBranch }}')))] - name: doProj1Deployment value: $[and(variables['doDeployment'], not(in('Proj1', variables['excludedProjs'])))] - name: doProj2Deployment value: $[and(variables['doDeployment'], not(in('Proj2', variables['excludedProjs'])))] - name: doProj3Deployment value: $[and(variables['doDeployment'], not(in('Proj3', variables['excludedProjs'])))] - name: doProj4Deployment value: $[and(variables['doDeployment'], not(in('Proj4', variables['excludedProjs'])))] Key Changes: 1. Replaced containsValue with in for string matching. 2. Replaced {excludedProjs_set_from_ui} with variables['excludedProjs'] to reference the variable set from the Azure UI.
Обсуждают сегодня