1
- # The purpose of this pipeline is to exercise various developer workflows in the repo.
2
- # Primarily , it is meant to cover local (non-cross) build scenarios and
3
- # source-build scenarios that commonly cause build breaks .
1
+ # The purpose of this pipeline is to exercise local developer workflow in the consolidated
2
+ # runtime repo. In particular , it is supposed to run the root " build" script just like any
3
+ # normal developer normally would and monitor regressions w.r.t. this fundamental scenario .
4
4
5
5
trigger : none
6
6
@@ -41,6 +41,28 @@ extends:
41
41
- stage : Build
42
42
jobs :
43
43
44
+ #
45
+ # Build with Release config and Debug runtimeConfiguration
46
+ #
47
+ - template : /eng/pipelines/common/platform-matrix.yml
48
+ parameters :
49
+ jobTemplate : /eng/pipelines/common/global-build-job.yml
50
+ buildConfig : release
51
+ platforms :
52
+ - windows_x86
53
+ - osx_x64
54
+ - osx_arm64
55
+ jobParameters :
56
+ testGroup : innerloop
57
+ nameSuffix : Runtime_Debug
58
+ buildArgs : -c release -runtimeConfiguration debug
59
+ timeoutInMinutes : 120
60
+ condition :
61
+ or(
62
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
63
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
64
+ eq(variables['isRollingBuild'], true))
65
+
44
66
#
45
67
# Build with Release config and runtimeConfiguration with MSBuild generator
46
68
#
@@ -61,6 +83,26 @@ extends:
61
83
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
62
84
eq(variables['isRollingBuild'], true))
63
85
86
+ #
87
+ # Build with Debug config and Release runtimeConfiguration
88
+ #
89
+ - template : /eng/pipelines/common/platform-matrix.yml
90
+ parameters :
91
+ jobTemplate : /eng/pipelines/common/global-build-job.yml
92
+ buildConfig : debug
93
+ platforms :
94
+ - linux_x64_dev_innerloop
95
+ jobParameters :
96
+ testGroup : innerloop
97
+ nameSuffix : Runtime_Release
98
+ buildArgs : -c debug -runtimeConfiguration release
99
+ timeoutInMinutes : 120
100
+ condition :
101
+ or(
102
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
103
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
104
+ eq(variables['isRollingBuild'], true))
105
+
64
106
#
65
107
# Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is
66
108
# specified. Catches cases where we depend on Configuration also being specified
@@ -82,49 +124,55 @@ extends:
82
124
eq(variables['isRollingBuild'], true))
83
125
84
126
#
85
- # Build Libraries AllConfigurations . This exercises the code path where we build libraries for all
86
- # configurations on a non Windows operating system.
127
+ # Build Mono + Libraries . This exercises the code path where we build libraries without
128
+ # first building CoreCLR
87
129
#
88
130
- template : /eng/pipelines/common/platform-matrix.yml
89
131
parameters :
90
132
jobTemplate : /eng/pipelines/common/global-build-job.yml
91
133
buildConfig : debug
92
134
platforms :
93
- - linux_x64_dev_innerloop
135
+ - windows_x64
94
136
jobParameters :
95
- nameSuffix : Libraries_AllConfigurations
96
- buildArgs : -subset libs -allconfigurations
137
+ testGroup : innerloop
138
+ nameSuffix : Mono_Libraries
139
+ buildArgs : -subset mono+libs /p:RuntimeFlavor=Mono
97
140
timeoutInMinutes : 120
98
141
condition :
99
142
or(
100
- eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm .containsChange'], true),
143
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_wasm .containsChange'], true),
101
144
eq(variables['isRollingBuild'], true))
102
145
103
146
#
104
- # Build native assets on Alpine . This exercises more modern musl libc changes that have a tendendy to break source-build.
105
- # We don't add this as a source-build job as the repo source-build infrastructure isn't set up to run on alpine effectively .
147
+ # Build Libraries AllConfigurations . This exercises the code path where we build libraries for all
148
+ # configurations on a non Windows operating system .
106
149
#
107
150
- template : /eng/pipelines/common/platform-matrix.yml
108
151
parameters :
109
152
jobTemplate : /eng/pipelines/common/global-build-job.yml
110
- buildConfig : release
153
+ buildConfig : debug
111
154
platforms :
112
- - linux_musl_x64_dev_innerloop
155
+ - linux_x64_dev_innerloop
113
156
jobParameters :
114
- nameSuffix : Musl_Validation
115
- buildArgs : -subset clr.native+ libs.native+host.native -c $(_BuildConfig)
157
+ nameSuffix : Libraries_AllConfigurations
158
+ buildArgs : -subset libs -allconfigurations
116
159
timeoutInMinutes : 120
117
160
condition :
118
161
or(
119
162
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
120
163
eq(variables['isRollingBuild'], true))
121
164
122
165
#
123
- # Build Portable SourceBuild
166
+ # SourceBuild Build
124
167
#
125
- - template : /eng/common/templates/jobs/source-build .yml
168
+ - template : /eng/pipelines/ common/platform-matrix .yml
126
169
parameters :
170
+ jobTemplate : /eng/pipelines/common/global-build-job.yml
171
+ buildConfig : Release
127
172
platforms :
128
- - name : Linux_x64
129
- targetRid : linux-x64
130
- container : SourceBuild_linux_x64
173
+ - SourceBuild_linux_x64
174
+ jobParameters :
175
+ nameSuffix : PortableSourceBuild
176
+ timeoutInMinutes : 95
177
+ condition :
178
+ eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true)
0 commit comments