88 - main
99 - release/*
1010 - internal/release/*
11+ - dnup
1112 paths :
1213 exclude :
1314 - documentation/*
@@ -24,56 +25,98 @@ variables:
2425- template : /eng/pipelines/templates/variables/sdk-defaults.yml
2526# Variables used: DncEngPublicBuildPool
2627- template : /eng/common/templates/variables/pool-providers.yml
28+ # Variable to determine if PR changes are limited to dnup paths
29+ - name : isDnupOnlyChanges
30+ value : $[in(variables['Build.Reason'], 'PullRequest', 'Manual')]
2731
2832resources :
2933 containers :
3034 - container : azureLinux30Amd64
3135 image : mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-build-amd64
3236
3337stages :
34- # ############## BUILD STAGE ###############
35- - stage : build
36- displayName : Build
38+ # ############## FILTER CHANGES STAGE ###############
39+ - stage : filter_changes
40+ displayName : Filter PR Changes
3741 jobs :
38- # ############## WINDOWS ###############
39- - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml@self
42+ - template : /eng/pipelines/templates/jobs/filter-dnup-changes.yml
4043 parameters :
4144 pool :
4245 name : $(DncEngPublicBuildPool)
4346 demands : ImageOverride -equals windows.vs2022.amd64.open
47+
48+ # ############## BUILD STAGE ###############
49+ - stage : build
50+ displayName : Build
51+ dependsOn : filter_changes
52+ variables :
53+ isDnupOnlyChanges : $[ stageDependencies.filter_changes.FilterDnupChanges.outputs['SetDnupFlag.isDnupOnlyChanges'] ]
54+ jobs :
55+ # If changes are dnup-only, run only dnup tests
56+ - ${{ if eq(variables['isDnupOnlyChanges'], 'true') }} :
57+ # ############## DNUP TESTS ONLY ###############
58+ - template : /eng/pipelines/templates/jobs/dnup-tests.yml
59+ parameters :
60+ pool :
61+ name : $(DncEngPublicBuildPool)
62+ demands : ImageOverride -equals windows.vs2022.amd64.open
4463 os : windows
45- helixTargetQueue : windows.amd64.vs2022.pre.open
4664
47- # ############## LINUX ###############
48- - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml
49- parameters :
50- pool :
51- name : $(DncEngPublicBuildPool)
52- demands : ImageOverride -equals build.ubuntu.2204.amd64.open
65+ - template : /eng/pipelines/templates/jobs/dnup-tests.yml
66+ parameters :
67+ pool :
68+ name : $(DncEngPublicBuildPool)
69+ demands : ImageOverride -equals build.ubuntu.2204.amd64.open
5370 os : linux
54- helixTargetQueue : ubuntu.2204.amd64.open
5571
56- # ############## MACOS ###############
57- - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml
58- parameters :
59- pool :
60- name : Azure Pipelines
61- vmImage : macOS-latest
72+ - template : /eng/pipelines/templates/jobs/dnup-tests.yml
73+ parameters :
74+ pool :
75+ name : Azure Pipelines
76+ vmImage : macOS-latest
6277 os : macOS
63- helixTargetQueue : osx.15.amd64.open
64- # ## ARM64 ###
65- - ${{ if eq(parameters.enableArm64Job, true) }} :
78+
79+ # Otherwise run the full SDK matrix
80+ - ${{ if ne(variables['isDnupOnlyChanges'], 'true') }} :
81+ # ############## WINDOWS ###############
82+ - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml@self
83+ parameters :
84+ pool :
85+ name : $(DncEngPublicBuildPool)
86+ demands : ImageOverride -equals windows.vs2022.amd64.open
87+ os : windows
88+ helixTargetQueue : windows.amd64.vs2022.pre.open
89+
90+ # ############## LINUX ###############
91+ - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml
92+ parameters :
93+ pool :
94+ name : $(DncEngPublicBuildPool)
95+ demands : ImageOverride -equals build.ubuntu.2204.amd64.open
96+ os : linux
97+ helixTargetQueue : ubuntu.2204.amd64.open
98+
99+ # ############## MACOS ###############
66100 - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml
67101 parameters :
68102 pool :
69103 name : Azure Pipelines
70104 vmImage : macOS-latest
71105 os : macOS
72- helixTargetQueue : osx.13.arm64.open
73- macOSJobParameterSets :
74- - categoryName : TestBuild
75- targetArchitecture : arm64
76- runtimeIdentifier : osx-arm64
106+ helixTargetQueue : osx.15.amd64.open
107+ # ## ARM64 ###
108+ - ${{ if eq(parameters.enableArm64Job, true) }} :
109+ - template : /eng/pipelines/templates/jobs/sdk-job-matrix.yml
110+ parameters :
111+ pool :
112+ name : Azure Pipelines
113+ vmImage : macOS-latest
114+ os : macOS
115+ helixTargetQueue : osx.13.arm64.open
116+ macOSJobParameterSets :
117+ - categoryName : TestBuild
118+ targetArchitecture : arm64
119+ runtimeIdentifier : osx-arm64
77120
78121 # ############## DOTNET-FORMAT ###############
79122 - template : /eng/dotnet-format/dotnet-format-integration.yml
0 commit comments