summaryrefslogtreecommitdiff
path: root/netci.groovy
diff options
context:
space:
mode:
authorjashook <jashoo@microsoft.com>2017-07-13 15:41:31 -0700
committerjashook <jashoo@microsoft.com>2017-07-19 09:00:13 -0700
commit3a2bbf3c8f7da914893c2d1d68975a2988767f59 (patch)
tree1b081d321241e1a5cce107faad7e427e540326d1 /netci.groovy
parent96997df404bbf1b30969aeed6303bc1fead43ed7 (diff)
downloadcoreclr-3a2bbf3c8f7da914893c2d1d68975a2988767f59.tar.gz
coreclr-3a2bbf3c8f7da914893c2d1d68975a2988767f59.tar.bz2
coreclr-3a2bbf3c8f7da914893c2d1d68975a2988767f59.zip
Add arm32 ci testing.
Note this will add a new lst file and leverage the old existing arm64 infrastructure.
Diffstat (limited to 'netci.groovy')
-rwxr-xr-xnetci.groovy110
1 files changed, 68 insertions, 42 deletions
diff --git a/netci.groovy b/netci.groovy
index 979d023bdb..93362dea2a 100755
--- a/netci.groovy
+++ b/netci.groovy
@@ -667,6 +667,33 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
addNonPRTriggers(job, branch, isPR, architecture, os, configuration, scenario, isFlowJob, isWindowsBuildOnlyJob, bidailyCrossList)
return
}
+
+ def arm64Users = [
+ 'adiaaida',
+ 'AndyAyersMS',
+ 'briansull',
+ 'BruceForstall',
+ 'CarolEidt',
+ 'cmckinsey',
+ 'erozenfeld',
+ 'jashook',
+ 'JosephTremoulet',
+ 'pgavlin',
+ 'russellhadley',
+ 'RussKeldorph',
+ 'sandreenko',
+ 'sdmaclea',
+ 'sivarv',
+ 'swaroop-sridhar',
+ 'gkhanna79',
+ 'jkotas',
+ 'markwilkie',
+ 'rahku',
+ 'ramarag',
+ 'tzwlai',
+ 'weshaggard'
+ ]
+
// Pull request builds. Generally these fall into two categories: default triggers and on-demand triggers
// We generally only have a distinct set of default triggers but a bunch of on-demand ones.
def osGroup = getOSGroup(os)
@@ -1056,10 +1083,10 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
break
// editor brace matching: }
case 'arm': // editor brace matching: {
- assert scenario == 'default'
switch (os) {
case 'Ubuntu':
case 'Ubuntu16.04':
+ assert scenario == 'default'
if ((os == 'Ubuntu' && configuration == 'Release') || (os == 'Ubuntu16.04' && configuration == 'Debug')) {
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build")
}
@@ -1078,9 +1105,36 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
}
break;
case 'Windows_NT':
- if (configuration == 'Debug' || configuration == 'Release')
- {
- Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build")
+ // Set up a private trigger
+ def contextString = "${os} ${architecture} Cross ${configuration}"
+ if (scenario != 'default')
+ contextString += " ${scenario}"
+ contextString += " Build"
+ // Debug builds only.
+ if (configuration != 'Debug') {
+ contextString += " and Test"
+ }
+ switch (scenario) {
+ case 'default':
+ // For now only run Debug and Release build jobs on PR Trigger. Note this is not a private trigger.
+ if (configuration == 'Debug' || configuration == 'Release')
+ {
+ Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString,
+ "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}.*", null, arm64Users)
+ }
+ else
+ {
+ // Checked jobs will run on private trigger and run tests.
+ Utilities.addDefaultPrivateGithubPRTriggerForBranch(job, branch, contextString, null, arm64Users)
+ }
+ break
+ case 'pri1r2r':
+ case 'gcstress0x3':
+ case 'gcstress0xc':
+ // Stress jobs will will run on private trigger and run tests.
+ Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString,
+ "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*", null, arm64Users)
+ break
}
break
default:
@@ -1103,32 +1157,6 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
contextString += " and Test"
}
- def arm64Users = [
- 'adiaaida',
- 'AndyAyersMS',
- 'briansull',
- 'BruceForstall',
- 'CarolEidt',
- 'cmckinsey',
- 'erozenfeld',
- 'jashook',
- 'JosephTremoulet',
- 'pgavlin',
- 'russellhadley',
- 'RussKeldorph',
- 'sandreenko',
- 'sdmaclea',
- 'sivarv',
- 'swaroop-sridhar',
- 'gkhanna79',
- 'jkotas',
- 'markwilkie',
- 'rahku',
- 'ramarag',
- 'tzwlai',
- 'weshaggard'
- ]
-
switch (os) {
case 'Ubuntu':
case 'Ubuntu16.04':
@@ -1590,7 +1618,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
}
break
case 'arm':
- assert (scenario == 'default')
+ assert (scenario == 'default') || (scenario == 'pri1r2r') || (scenario == 'gcstress0x3') || (scenario == 'gcstress0xc')
// Set time out
setTestJobTimeOut(newJob, scenario)
@@ -1599,7 +1627,12 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
// For Debug builds, we will do a P1 test build
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1"
}
- else {
+ else if (lowerConfiguration == "checked") {
+ // For checked runs we will also run testing.
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1"
+ buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -key_location C:\\tools\\key.txt"
+ }
+ else if (lowerConfiguration == "release") {
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture}"
}
// Add archival.
@@ -1820,14 +1853,6 @@ combinedScenarios.each { scenario ->
os = 'Windows_NT'
}
- // WinArm32 is only built for Debug and Release
- if (os == 'Windows_NT' && architecture == 'arm')
- {
- if (configuration == 'Checked')
- {
- return
- }
- }
// Tizen is only supported for arm architecture
if (os == 'Tizen' && architecture != 'arm') {
return
@@ -1887,6 +1912,7 @@ combinedScenarios.each { scenario ->
}
switch (architecture) {
+ case 'arm':
case 'arm64':
if ((scenario != 'gcstress0x3') && (scenario != 'gcstress0xc')) {
return
@@ -1929,7 +1955,7 @@ combinedScenarios.each { scenario ->
}
break
case 'ilrt':
- // The ilrt build isn't necessary except for Windows_NT. Non-Windows NT uses
+ // The ilrt build isn't necessary except for Windows_NT2003. Non-Windows NT uses
// the default scenario build
if (os != 'Windows_NT') {
return
@@ -1971,7 +1997,7 @@ combinedScenarios.each { scenario ->
return
}
if (architecture != 'x64') {
- if (architecture != 'arm64' || configuration == 'Debug') {
+ if ((architecture != 'arm64' && architecture != 'arm') || (configuration == 'Debug')) {
return
}
}