summaryrefslogtreecommitdiff
path: root/netci.groovy
diff options
context:
space:
mode:
Diffstat (limited to 'netci.groovy')
-rwxr-xr-xnetci.groovy332
1 files changed, 309 insertions, 23 deletions
diff --git a/netci.groovy b/netci.groovy
index 7a64274383..3bba51d6fb 100755
--- a/netci.groovy
+++ b/netci.groovy
@@ -15,6 +15,7 @@ def static getOSGroup(def os) {
def osGroupMap = ['Ubuntu':'Linux',
'RHEL7.2': 'Linux',
'Ubuntu16.04': 'Linux',
+ 'Ubuntu16.10': 'Linux',
'Debian8.4':'Linux',
'Fedora23':'Linux',
'OSX':'OSX',
@@ -22,6 +23,7 @@ def static getOSGroup(def os) {
'FreeBSD':'FreeBSD',
'CentOS7.1': 'Linux',
'OpenSUSE13.2': 'Linux',
+ 'OpenSUSE42.1': 'Linux',
'LinuxARMEmulator': 'Linux']
def osGroup = osGroupMap.get(os, null)
assert osGroup != null : "Could not find os group for ${os}"
@@ -34,7 +36,7 @@ class Constants {
// The Windows_NT_BuildOnly OS is a way to speed up the Non-NT builds temporarily by avoiding
// test execution in the build flow runs. It generates the exact same build
// as Windows_NT but without the tests.
- def static osList = ['Ubuntu', 'Debian8.4', 'OSX', 'Windows_NT', 'Windows_NT_BuildOnly', 'FreeBSD', 'CentOS7.1', 'OpenSUSE13.2', 'RHEL7.2', 'LinuxARMEmulator', 'Ubuntu16.04', 'Fedora23']
+ def static osList = ['Ubuntu', 'Debian8.4', 'OSX', 'Windows_NT', 'Windows_NT_BuildOnly', 'FreeBSD', 'CentOS7.1', 'OpenSUSE13.2', 'OpenSUSE42.1', 'RHEL7.2', 'LinuxARMEmulator', 'Ubuntu16.04', 'Ubuntu16.10', 'Fedora23']
def static crossList = ['Ubuntu', 'OSX', 'CentOS7.1', 'RHEL7.2', 'Debian8.4', 'OpenSUSE13.2']
// This is a set of JIT stress modes combined with the set of variables that
// need to be set to actually enable that stress mode. The key of the map is the stress mode and
@@ -75,7 +77,7 @@ class Constants {
'r2r_jitstressregs4', 'r2r_jitstressregs8', 'r2r_jitstressregsx10', 'r2r_jitstressregsx80',
'r2r_jitminopts', 'r2r_jitforcerelocs']
// This is the basic set of scenarios
- def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc', 'coverage', 'gcsimulator'] + r2rJitStressScenarios
+ def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc', 'coverage', 'formatting', 'gcsimulator'] + r2rJitStressScenarios
def static configurationList = ['Debug', 'Checked', 'Release']
// This is the set of architectures
def static architectureList = ['arm', 'arm64', 'x64', 'x86ryujit', 'x86lb']
@@ -248,6 +250,10 @@ def static getJobName(def configuration, def architecture, def os, def scenario,
// For now we leave x64 off of the name for compatibility with other jobs
baseName = configuration.toLowerCase() + '_' + os.toLowerCase()
}
+ else if (scenario == 'formatting') {
+ // we don't care about the configuration for the formatting job. It runs all configs
+ baseName = architecture.toLowerCase() + '_' + os.toLowerCase()
+ }
else {
baseName = architecture.toLowerCase() + '_' + configuration.toLowerCase() + '_' + os.toLowerCase()
}
@@ -453,6 +459,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
assert architecture == 'x64'
Utilities.addPeriodicTrigger(job, '@weekly')
break
+ case 'formatting':
+ assert (os == 'Windows_NT' || os == "Ubuntu")
+ assert architecture == 'x64'
+ Utilities.addGithubPushTrigger(job)
+ break
case 'jitstressregs1':
case 'jitstressregs2':
case 'jitstressregs3':
@@ -542,6 +553,15 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
}
break
}
+
+ if (scenario == 'formatting') {
+ assert configuration == 'Checked'
+ if (os == 'Windows_NT' || os == 'Ubuntu') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Formatting")
+ }
+ break
+ }
+
switch (os) {
// OpenSUSE, Debian & RedHat get trigger phrases for pri 0 build, and pri 1 build & test
case 'OpenSUSE13.2':
@@ -558,6 +578,8 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
break
case 'Fedora23':
case 'Ubuntu16.04':
+ case 'Ubuntu16.10':
+ case 'OpenSUSE42.1':
assert !isFlowJob
assert scenario == 'default'
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build", "(?i).*test\\W+${os}\\W+.*")
@@ -1067,6 +1089,12 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
Utilities.addGithubPRTriggerForBranch(job, branch, "Linux ARM Emulator Cross ${configuration} Build")
}
break
+ case 'Windows_NT':
+ if (configuration == 'Debug' || configuration == 'Release')
+ {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build")
+ }
+ break
default:
println("NYI os: ${os}");
assert false
@@ -1092,13 +1120,13 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
switch (scenario) {
case 'default':
Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString,
- "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}", null, arm64Users)
+ "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}.*", null, arm64Users)
break
case 'pri1r2r':
case 'gcstress0x3':
case 'gcstress0xc':
Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString,
- "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}", null, arm64Users)
+ "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*", null, arm64Users)
break
}
break
@@ -1109,6 +1137,195 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
}
break
case 'x86ryujit':
+ def arch = 'x86'
+ def jit = 'ryujit'
+ switch (scenario) {
+ case 'default':
+ // Default trigger
+ if (os == 'Windows_NT') {
+ if (configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test")
+ }
+ }
+ else {
+ // default trigger
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build", "(?i).*test\\W+${arch}\\W+${osGroup}.\\W+${jit}.*")
+ }
+ break
+ case 'pri1':
+ // Default trigger
+ if (configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Priority 1 Build and Test")
+ }
+ break
+ case 'ilrt':
+ if (configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} IL RoundTrip Build and Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r':
+ if (configuration == 'Checked' || configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri0 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'pri1r2r':
+ if (configuration == 'Checked' || configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'gcstress15_pri1r2r':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstress1':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstress1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstress2':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstress2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregs1':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregs2':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregs3':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs3 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregs4':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs4 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregs8':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs8 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregsx10':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregsx10 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitstressregsx80':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregsx80 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitminopts':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} JITMinOpts R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'r2r_jitforcerelocs':
+ if (configuration == 'Release' || configuration == 'Checked') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} ForceRelocs R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'longgc':
+ if (configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'gcsimulator':
+ if (configuration == 'Release') {
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GC Simulator", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ }
+ break
+ case 'minopts':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - MinOpts)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'forcerelocs':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - ForceRelocs)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstress1':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStress=1)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstress2':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStress=2)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs1':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=1)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs2':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=2)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs3':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=3)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs4':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=4)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs8':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=8)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs0x10':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=0x10)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstressregs0x80':
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - JitStressRegs=0x80)",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ case 'jitstress2_jitstressregs1':
+ case 'jitstress2_jitstressregs2':
+ case 'jitstress2_jitstressregs3':
+ case 'jitstress2_jitstressregs4':
+ case 'jitstress2_jitstressregs8':
+ case 'jitstress2_jitstressregs0x10':
+ case 'jitstress2_jitstressregs0x80':
+ case 'gcstress0x3':
+ case 'gcstress0xc':
+ case 'zapdisable':
+ case 'heapverify1':
+ case 'gcstress0xc_zapdisable':
+ case 'gcstress0xc_zapdisable_jitstress2':
+ case 'gcstress0xc_zapdisable_heapverify1':
+ case 'gcstress0xc_jitstress1':
+ case 'gcstress0xc_jitstress2':
+ case 'gcstress0xc_minopts_heapverify1':
+ def displayStr = getStressModeDisplayName(scenario)
+ assert (os == 'Windows_NT')
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - ${displayStr})",
+ "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
+ break
+ default:
+ println("Unknown scenario: ${arch} ${jit} ${scenario}");
+ assert false
+ break
+ }
+ break
case 'x86lb':
assert (scenario == 'default' || scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r' || scenario == 'longgc' || scenario == 'gcsimulator' ||
Constants.r2rJitStressScenarios.indexOf(scenario) != -1)
@@ -1127,7 +1344,7 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
}
else {
// default trigger
- Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build", "(?i).*test\\W+${arch}\\W+${osGroup}.\\W+${jit}*")
+ Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build", "(?i).*test\\W+${arch}\\W+${osGroup}.\\W+${jit}.*")
}
}
else if (scenario == 'r2r') {
@@ -1266,6 +1483,14 @@ combinedScenarios.each { scenario ->
os = 'Windows_NT'
}
+ // WinArm32 is only built for Debug and Release
+ if (os == 'Windows_NT' && architecture == 'arm')
+ {
+ if (configuration == 'Checked')
+ {
+ return
+ }
+ }
// If the OS is LinuxARMEmulator and arch is arm, set the isLinuxEmulatorBuild
// flag to true and reset the os to Ubuntu
// The isLinuxEmulatorBuild flag will be used at a later time to execute the right
@@ -1293,8 +1518,7 @@ combinedScenarios.each { scenario ->
}
break
case 'arm':
- // Only Ubuntu cross implemented
- if (os != 'Ubuntu') {
+ if ((os != 'Ubuntu') && (os != 'Windows_NT')) {
return
}
break
@@ -1339,6 +1563,11 @@ combinedScenarios.each { scenario ->
case 'x64':
// Everything implemented
break
+ case 'x86ryujit':
+ if (enableCorefxTesting) {
+ return
+ }
+ break
default:
return
}
@@ -1445,6 +1674,21 @@ combinedScenarios.each { scenario ->
return
}
break
+ // We only run Windows and Ubuntu x64 Checked for formatting right now
+ case 'formatting':
+ if (os != 'Windows_NT' && os != 'Ubuntu') {
+ return
+ }
+ if (architecture != 'x64') {
+ return
+ }
+ if (configuration != 'Checked') {
+ return
+ }
+ if (isBuildOnly) {
+ return
+ }
+ break
case 'default':
// Nothing skipped
break
@@ -1480,7 +1724,12 @@ combinedScenarios.each { scenario ->
case 'x86ryujit':
case 'x86lb':
def arch = architecture
- if (architecture == 'x86ryujit' || architecture == 'x86lb') {
+ def buildOpts = ''
+ if (architecture == 'x86ryujit') {
+ arch = 'x86'
+ buildOpts = 'altjitcrossgen'
+ }
+ else if (architecture == 'x86lb') {
arch = 'x86'
}
@@ -1488,27 +1737,31 @@ combinedScenarios.each { scenario ->
scenario == 'default' ||
scenario == 'r2r' ||
Constants.r2rJitStressScenarios.indexOf(scenario) != -1) {
- buildOpts = enableCorefxTesting ? 'skiptests' : ''
+ buildOpts += enableCorefxTesting ? ' skiptests' : ''
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}"
}
// For Pri 1 tests, we must shorten the output test binary path names.
- // if __TestIntermediateDir is already set, buildtest.cmd will
+ // if __TestIntermediateDir is already set, build-test.cmd will
// output test binaries to that directory. If it is not set, the
// binaries are sent to a default directory whose name is about
// 35 characters long.
else if (scenario == 'pri1' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'|| scenario == 'coverage') {
- buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} Priority 1"
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts} -priority=1"
}
else if (scenario == 'ilrt') {
// First do the build with skiptests and then build the tests with ilasm roundtrip
- buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
- buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} ilasmroundtrip"
+ buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests"
+ buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch} -ilasmroundtrip"
}
else if (isLongGc(scenario)) {
- buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
- buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch}"
+ buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests"
+ buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch}"
+ }
+ else if (scenario == 'formatting') {
+ buildCommands += "python -u tests\\scripts\\format.py -c %WORKSPACE% -o Windows_NT -a ${arch}"
+ break
}
else {
println("Unknown scenario: ${scenario}")
@@ -1597,12 +1850,18 @@ combinedScenarios.each { scenario ->
}
else {
def stepScriptLocation = "%WORKSPACE%\\bin\\tests\\SetStressModes.bat"
- buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], stepScriptLocation)
- // Run tests with the
+ if (architecture == 'x86ryujit'){
+ def x86Vars = ['COMPLUS_AltJit' : '*', 'COMPLUS_AltJitName' : 'protojit.dll', 'COMPLUS_NoGuiOnAssert' : '1']
+ buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario] + x86Vars, stepScriptLocation)
+ }
+ else {
+ buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], stepScriptLocation)
+ }
+ // Run tests with the
buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${stepScriptLocation}"
- }
+ }
}
else if (architecture == 'x64') {
buildCommands += "tests\\runtest.cmd ${runtestArguments}"
@@ -1655,6 +1914,17 @@ combinedScenarios.each { scenario ->
}
break
+ case 'arm':
+ assert (scenario == 'default')
+
+ // Set time out
+ setTestJobTimeOut(newJob, scenario)
+
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture}"
+
+ // Add archival.
+ Utilities.addArchival(newJob, "bin/Product/**")
+ break
case 'arm64':
assert (scenario == 'default') || (scenario == 'pri1r2r') || (scenario == 'gcstress0x3') || (scenario == 'gcstress0xc')
// Set time out
@@ -1662,10 +1932,10 @@ combinedScenarios.each { scenario ->
// Debug runs take too long to run. So build job only.
if (lowerConfiguration == "debug") {
- buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} /toolset_dir C:\\ats2"
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2"
}
else {
- buildCommands += "set __TestIntermediateDir=int&&build.cmd skiptests ${lowerConfiguration} ${architecture} /toolset_dir C:\\ats2"
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd skiptests ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2"
// Test build and run are launched together.
buildCommands += "Z:\\arm64\\common\\scripts\\arm64PostLauncher.cmd %WORKSPACE% ${architecture} ${lowerConfiguration} ${scenario}"
Utilities.addXUnitDotNETResults(newJob, 'bin/tests/testResults.xml')
@@ -1682,12 +1952,14 @@ combinedScenarios.each { scenario ->
break
case 'Ubuntu':
case 'Ubuntu16.04':
+ case 'Ubuntu16.10':
case 'Debian8.4':
case 'OSX':
case 'FreeBSD':
case 'CentOS7.1':
case 'RHEL7.2':
case 'OpenSUSE13.2':
+ case 'OpenSUSE42.1':
case 'Fedora23':
switch (architecture) {
case 'x64':
@@ -1697,6 +1969,11 @@ combinedScenarios.each { scenario ->
if (architecture == 'x86ryujit' || architecture == 'x86lb') {
arch = 'x86'
}
+
+ if (scenario == 'formatting') {
+ buildCommands += "python tests/scripts/format.py -c \${WORKSPACE} -o Linux -a ${arch}"
+ break
+ }
if (!enableCorefxTesting) {
// We run pal tests on all OS but generate mscorlib (and thus, nuget packages)
@@ -1707,7 +1984,9 @@ combinedScenarios.each { scenario ->
}
else
{
- buildCommands += "./build.sh verbose ${lowerConfiguration} ${arch}"
+ def bootstrapRid = Utilities.getBoostrapPublishRid(os)
+ def bootstrapRidEnv = bootstrapRid != null ? "__PUBLISH_RID=${bootstrapRid} " : ''
+ buildCommands += "${bootstrapRidEnv}./build.sh verbose ${lowerConfiguration} ${arch}"
}
buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${arch}.${configuration} \${WORKSPACE}/bin/paltestout"
@@ -1732,7 +2011,7 @@ combinedScenarios.each { scenario ->
buildCommands += "git clone -b $branch --single-branch https://github.com/dotnet/corefx fx"
// Set environment variable
- def setEnvVar = getStressModeEnvSetCmd(os, scenario)
+ def setEnvVar = getStressModeEnvSetCmd(os, scenario)
// Build and text corefx
buildCommands += "rm -rf \$WORKSPACE/fx_home; mkdir \$WORKSPACE/fx_home"
@@ -1836,7 +2115,7 @@ combinedScenarios.each { scenario ->
latestSuccessful(true)
}
}
- copyArtifacts("${corefxFolder}/linuxarmemulator_cross_${lowerConfiguration}") {
+ copyArtifacts("${corefxFolder}/linuxarmemulator_softfp_cross_${lowerConfiguration}") {
includePatterns('bin/build.tar.gz')
buildSelector {
latestSuccessful(true)
@@ -1962,6 +2241,8 @@ combinedScenarios.each { scenario ->
if (configuration != 'Release') {
return
}
+ case 'formatting':
+ return
case 'default':
// Nothing skipped
break
@@ -2317,3 +2598,8 @@ build(params + [CORECLR_BUILD: coreclrBuildJob.build.number,
} // scenario
JobReport.Report.generateJobReport(out)
+
+// Make the call to generate the help job
+Utilities.createHelperJob(this, project, branch,
+ "Welcome to the ${project} Repository", // This is prepended to the help message
+ "Have a nice day!") // This is appended to the help message. You might put known issues here.