@@ -18,18 +18,31 @@ def msbuildTypeMap = [
18
18
19
19
// convert `machine` parameter to OS component of PR task name
20
20
def machineTypeToOSTagMap = [
21
- ' Windows_NT' : ' Windows' , // Windows Server 2012 R2, equivalent to Windows 8.1 (aka Blue)
21
+ ' Windows 7' : ' Windows 7' , // 'latest-or-auto' -> Windows Server 2008 R2 ~= Windows 7
22
+ ' Windows_NT' : ' Windows 8.1' , // 'latest-or-auto' -> Windows Server 2012 R2 ~= Windows 8.1 aka Blue
23
+ ' windows.10.amd64.clientrs4.devex.open' : ' Windows 10' , // = Windows 10 RS4 with Dev 15.7
22
24
' Ubuntu16.04' : ' Ubuntu' ,
23
25
' OSX10.12' : ' OSX'
24
26
]
25
27
28
+ def defaultMachineTag = ' latest-or-auto'
29
+
30
+ def legacyWindows7Machine = ' Windows 7'
31
+ def legacyWindows7MachineTag = defaultMachineTag
32
+
33
+ def legacyWindows8Machine = ' Windows_NT'
34
+ def legacyWindows8MachineTag = defaultMachineTag
35
+
36
+ def latestWindowsMachine = ' windows.10.amd64.clientrs4.devex.open' // Windows 10 RS4 with Dev 15.7
37
+ def latestWindowsMachineTag = null // all information is included in the machine name above
38
+
26
39
def dailyRegex = ' dailies'
27
40
28
41
// ---------------
29
42
// HELPER CLOSURES
30
43
// ---------------
31
44
32
- def CreateBuildTask = { isPR , buildArch , buildType , machine , configTag , buildExtra , testExtra , runCodeAnalysis , excludeConfigIf , nonDefaultTaskSetup ->
45
+ def CreateBuildTask = { isPR , buildArch , buildType , machine , machineTag , configTag , buildExtra , testExtra , runCodeAnalysis , excludeConfigIf , nonDefaultTaskSetup ->
33
46
if (excludeConfigIf && excludeConfigIf(isPR, buildArch, buildType)) {
34
47
return // early exit: we don't want to create a job for this configuration
35
48
}
@@ -75,7 +88,13 @@ def CreateBuildTask = { isPR, buildArch, buildType, machine, configTag, buildExt
75
88
false , // doNotFailIfNothingArchived=false ~= failIfNothingArchived
76
89
false ) // archiveOnlyIfSuccessful=false ~= archiveAlways
77
90
78
- Utilities . setMachineAffinity(newJob, machine, ' latest-or-auto' )
91
+ if (machineTag == null ) {
92
+ // note: this is a different overload and not equivalent to calling setMachineAffinity(_,_,null)
93
+ Utilities . setMachineAffinity(newJob, machine)
94
+ } else {
95
+ Utilities . setMachineAffinity(newJob, machine, machineTag)
96
+ }
97
+
79
98
Utilities . standardJobSetup(newJob, project, isPR, " */${ branch} " )
80
99
81
100
if (nonDefaultTaskSetup == null ) {
@@ -95,11 +114,11 @@ def CreateBuildTask = { isPR, buildArch, buildType, machine, configTag, buildExt
95
114
}
96
115
}
97
116
98
- def CreateBuildTasks = { machine , configTag , buildExtra , testExtra , runCodeAnalysis , excludeConfigIf , nonDefaultTaskSetup ->
117
+ def CreateBuildTasks = { machine , machineTag , configTag , buildExtra , testExtra , runCodeAnalysis , excludeConfigIf , nonDefaultTaskSetup ->
99
118
[true , false ]. each { isPR ->
100
119
[' x86' , ' x64' , ' arm' ]. each { buildArch ->
101
120
[' debug' , ' test' , ' release' ]. each { buildType ->
102
- CreateBuildTask (isPR, buildArch, buildType, machine, configTag, buildExtra, testExtra, runCodeAnalysis, excludeConfigIf, nonDefaultTaskSetup)
121
+ CreateBuildTask (isPR, buildArch, buildType, machine, machineTag, configTag, buildExtra, testExtra, runCodeAnalysis, excludeConfigIf, nonDefaultTaskSetup)
103
122
}
104
123
}
105
124
}
@@ -142,7 +161,7 @@ def CreateXPlatBuildTask = { isPR, buildType, staticBuild, machine, platform, co
142
161
true , // doNotFailIfNothingArchived=false ~= failIfNothingArchived (true ~= doNotFail)
143
162
false ) // archiveOnlyIfSuccessful=false ~= archiveAlways
144
163
145
- Utilities . setMachineAffinity(newJob, machine, ' latest-or-auto ' )
164
+ Utilities . setMachineAffinity(newJob, machine, defaultMachineTag )
146
165
Utilities . standardJobSetup(newJob, project, isPR, " */${ branch} " )
147
166
148
167
if (nonDefaultTaskSetup == null ) {
@@ -213,47 +232,83 @@ def CreateStyleCheckTasks = { taskString, taskName, checkName ->
213
232
Utilities . addGithubPushTrigger(newJob)
214
233
}
215
234
216
- Utilities . setMachineAffinity(newJob, ' Ubuntu16.04' , ' latest-or-auto ' )
235
+ Utilities . setMachineAffinity(newJob, ' Ubuntu16.04' , defaultMachineTag )
217
236
}
218
237
}
219
238
220
239
// ----------------
221
240
// INNER LOOP TASKS
222
241
// ----------------
223
242
224
- CreateBuildTasks (' Windows_NT' , null , null , " -winBlue" , true , null , null )
243
+ // The latest machine seems to have a configuration problem preventing us from building ARM.
244
+ // For now, build ARM on the LKG config, Legacy Windows 8.1 (Blue) config.
245
+ // TODO When the configuration is updated, unify this config split.
246
+ CreateBuildTasks (latestWindowsMachine, latestWindowsMachineTag, null , null , " -win10" , true ,
247
+ /* excludeConfigIf */ { isPR , buildArch , buildType -> (buildArch == ' arm' ) }, null )
248
+ CreateBuildTasks (legacyWindows8Machine, legacyWindows8MachineTag, null , null , " -winBlue" , true ,
249
+ /* excludeConfigIf */ { isPR , buildArch , buildType -> (buildArch != ' arm' ) }, null )
225
250
226
251
// Add some additional daily configs to trigger per-PR as a quality gate:
227
252
// x64_debug Slow Tests
228
253
CreateBuildTask (true , ' x64' , ' debug' ,
229
- ' Windows_NT ' , ' ci_slow' , null , ' -winBlue -includeSlow' , false , null , null )
254
+ latestWindowsMachine, latestWindowsMachineTag, ' ci_slow' , null , ' -win10 -includeSlow' , false , null , null )
230
255
// x64_debug DisableJIT
231
256
CreateBuildTask (true , ' x64' , ' debug' ,
232
- ' Windows_NT ' , ' ci_disablejit' , ' "/p:BuildJIT=false"' , ' -winBlue -disablejit' , false , null , null )
257
+ latestWindowsMachine, latestWindowsMachineTag, ' ci_disablejit' , ' "/p:BuildJIT=false"' , ' -win10 -disablejit' , false , null , null )
233
258
// x64_debug Lite
234
259
CreateBuildTask (true , ' x64' , ' debug' ,
235
- ' Windows_NT' , ' ci_lite' , ' "/p:BuildLite=true"' , ' -winBlue -lite' , false , null , null )
260
+ latestWindowsMachine, latestWindowsMachineTag, ' ci_lite' , ' "/p:BuildLite=true"' , ' -win10 -lite' , false , null , null )
261
+ // x64_debug Legacy (Windows 7)
262
+ CreateBuildTask (true , ' x64' , ' debug' ,
263
+ legacyWindows7Machine, legacyWindows7MachineTag, ' ci_legacy7' , ' msbuild14' , ' -win7 -includeSlow' , false , null , null )
264
+ // x64_debug Legacy (Windows 8.1 (Blue))
265
+ CreateBuildTask (true , ' x64' , ' debug' ,
266
+ legacyWindows8Machine, legacyWindows8MachineTag, ' ci_legacy8' , ' msbuild14' , ' -winBlue -includeSlow' , false , null , null )
236
267
237
268
// -----------------
238
269
// DAILY BUILD TASKS
239
270
// -----------------
240
271
241
272
if (! branch. endsWith(' -ci' )) {
242
- // build and test on the usual configuration (VS 2015) with -includeSlow
243
- CreateBuildTasks (' Windows_NT' , ' daily_slow' , null , ' -winBlue -includeSlow' , false ,
273
+ // build and test on the legacy configuration (Windows 7 + VS 2015 (Dev14))
274
+ CreateBuildTasks (legacyWindows7Machine, legacyWindows7MachineTag, ' daily_legacy7' , ' msbuild14' , ' -win7 -includeSlow' , false ,
275
+ /* excludeConfigIf */ { isPR , buildArch , buildType -> (buildArch == ' arm' ) },
276
+ /* nonDefaultTaskSetup */ { newJob , isPR , config ->
277
+ DailyBuildTaskSetup (newJob, isPR,
278
+ " Windows 7 ${ config} " ,
279
+ ' legacy7?\\ s+tests)' )})
280
+
281
+ // build and test on the legacy configuration (Windows 8.1 (Blue) + VS 2015 (Dev14))
282
+ CreateBuildTasks (legacyWindows8Machine, legacyWindows8MachineTag, ' daily_legacy8' , ' msbuild14' , ' -winBlue -includeSlow' , false ,
283
+ /* excludeConfigIf */ { isPR , buildArch , buildType -> (buildArch == ' arm' ) },
284
+ /* nonDefaultTaskSetup */ { newJob , isPR , config ->
285
+ DailyBuildTaskSetup (newJob, isPR,
286
+ " Windows 8 ${ config} " ,
287
+ ' legacy8?\\ s+tests' )})
288
+
289
+ // build and test on the latest configuration (RS4 + VS 2017 Dev 15.7) with -includeSlow
290
+ CreateBuildTasks (latestWindowsMachine, latestWindowsMachineTag, ' daily_slow' , null , ' -win10 -includeSlow' , false ,
244
291
/* excludeConfigIf */ null ,
245
292
/* nonDefaultTaskSetup */ { newJob , isPR , config ->
246
293
DailyBuildTaskSetup (newJob, isPR,
247
294
" Windows ${ config} " ,
248
295
' slow\\ s+tests' )})
249
296
250
- // build and test on the usual configuration (VS 2015 ) with JIT disabled
251
- CreateBuildTasks (' Windows_NT ' , ' daily_disablejit' , ' "/p:BuildJIT=false"' , ' -winBlue -disablejit' , true ,
297
+ // build and test on the latest configuration (RS4 + VS 2017 Dev 15.7 ) with JIT disabled
298
+ CreateBuildTasks (latestWindowsMachine, latestWindowsMachineTag, ' daily_disablejit' , ' "/p:BuildJIT=false"' , ' -win10 -disablejit' , true ,
252
299
/* excludeConfigIf */ null ,
253
300
/* nonDefaultTaskSetup */ { newJob , isPR , config ->
254
301
DailyBuildTaskSetup (newJob, isPR,
255
302
" Windows ${ config} " ,
256
303
' (disablejit|nojit)\\ s+tests' )})
304
+
305
+ // build and test on the latest configuration (RS4 + VS 2017 Dev 15.7) with Lite build
306
+ CreateBuildTasks (latestWindowsMachine, latestWindowsMachineTag, ' daily_lite' , ' "/p:BuildLite=true"' , ' -win10 -lite' , true ,
307
+ /* excludeConfigIf */ null ,
308
+ /* nonDefaultTaskSetup */ { newJob , isPR , config ->
309
+ DailyBuildTaskSetup (newJob, isPR,
310
+ " Windows ${ config} " ,
311
+ ' lite\\ s+tests' )})
257
312
}
258
313
259
314
// ----------------
@@ -292,7 +347,7 @@ if (isXPlatCompatibleBranch) {
292
347
CreateXPlatBuildTasks (osString, " linux" , " ubuntu" , branch, null , " " )
293
348
294
349
// Create a PR/continuous task to check ubuntu/static/debug/no-icu
295
- [true , false ]. each { isPR ->
350
+ [true , false ]. each { isPR ->
296
351
CreateXPlatBuildTask (isPR, " debug" , true , osString, " linux" ,
297
352
" ubuntu" , branch, null , " --no-icu" , " --not-tag exclude_noicu" , " " )
298
353
}
0 commit comments