diff options
author | Wes Haggard <Wes.Haggard@microsoft.com> | 2017-05-31 20:43:58 +0300 |
---|---|---|
committer | Wes Haggard <Wes.Haggard@microsoft.com> | 2017-06-20 00:56:22 +0300 |
commit | bbd891fb33544f0768447c999543db15e165af00 (patch) | |
tree | c3c93ba77bc7bdc2c11b0c1d0db864bd1c2ce651 /netci.groovy | |
parent | 4a9c4c8c1a6e4b2d9f3245a63a67b61eb8c68382 (diff) |
Update CI scripts to use pipeline jobs for most
See https://github.com/dotnet/corefx/issues/21135 for details
Move most CI jobs from netci.groovy to buildpipeline.groovy
Update the names to make them more concise and consistent
Setup manual triggers for all supported combinations but
only enable default PR triggers for a mix of architecture
and configuration flavor to help with resources and reliability.
Tizen and Linux arm are the only default triggers that still live
in netci.groovy. We should consider moving those at a future point.
Removed most CI legs from netci.groovy but kept the netcoreapp legs
because they are still used by CoreCLR test scripts. We should move
off of those eventually.
Diffstat (limited to 'netci.groovy')
-rw-r--r-- | netci.groovy | 102 |
1 files changed, 11 insertions, 91 deletions
diff --git a/netci.groovy b/netci.groovy index e6ec812250..684234d419 100644 --- a/netci.groovy +++ b/netci.groovy @@ -47,12 +47,10 @@ def buildArchConfiguration = ['Debug': 'x86', 'Release': 'x64'] def targetGroupOsMapOuterloop = ['netcoreapp': ['Windows 7', 'Windows_NT', 'Ubuntu14.04', 'Ubuntu16.04', 'Ubuntu16.10', 'CentOS7.1', 'OpenSUSE13.2', 'OpenSUSE42.1', - 'RHEL7.2', 'Fedora24', 'Debian8.4', 'OSX10.12', 'PortableLinux'], - 'netfx': ['Windows_NT']] + 'RHEL7.2', 'Fedora24', 'Debian8.4', 'OSX10.12', 'PortableLinux']] def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ubuntu16.04', 'Ubuntu16.10', 'CentOS7.1', 'OpenSUSE13.2', 'OpenSUSE42.1', - 'RHEL7.2', 'Fedora24', 'Debian8.4', 'OSX10.12', 'PortableLinux'], - 'netfx': ['Windows_NT']] + 'RHEL7.2', 'Fedora24', 'Debian8.4', 'OSX10.12', 'PortableLinux']] // ************************** // Define code coverage build @@ -127,7 +125,7 @@ def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ub // Define outerloop testing for OSes that can build and run. Run locally on each machine. // ************************** [true, false].each { isPR -> - ['netcoreapp', 'netfx'].each { targetGroup -> + ['netcoreapp'].each { targetGroup -> (targetGroupOsMapOuterloop[targetGroup]).each { osName -> ['Debug', 'Release'].each { configurationGroup -> @@ -210,81 +208,13 @@ def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ub } } -// ************************** -// Define target group vertical builds that will run on every merge. -// ************************** -[true, false].each { isPR -> - ['uap', 'uapaot'].each { targetGroup -> - ['Debug'].each { configurationGroup -> - ['Windows_NT'].each { osName -> - def osGroup = osGroupMap[osName] - def osForMachineAffinity = osName - - def newJobName = "${targetGroup}_${configurationGroup.toLowerCase()}" - - def newJob = job(Utilities.getFullJobName(project, newJobName, isPR)) { - // On Windows we use the packer to put together everything. On *nix we use tar - steps { - batchFile("call \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86 && build.cmd -${configurationGroup} -framework:${targetGroup}") - batchFile("call \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86 && build-tests.cmd -${configurationGroup} -framework:${targetGroup} -SkipTests") - } - } - // Set the affinity. - Utilities.setMachineAffinity(newJob, osForMachineAffinity, 'latest-or-auto') - // Set up standard options. - Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}") - // Set up triggers - if (isPR) { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "Vertical ${targetGroup} Build") - } - else { - // Set a push trigger - Utilities.addGithubPushTrigger(newJob) - } - } - } - } -} - -// ************************** -// Define AllConfigurations builds that will run on every merge. -// ************************** -[true, false].each { isPR -> - ['Debug'].each { configurationGroup -> - ['Windows_NT'].each { osName -> - def osGroup = osGroupMap[osName] - def osForMachineAffinity = osName - - def newJobName = "AllConfigurations_${configurationGroup.toLowerCase()}" - - def newJob = job(Utilities.getFullJobName(project, newJobName, isPR)) { - // On Windows we use the packer to put together everything. On *nix we use tar - steps { - batchFile("call \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86 && build.cmd -${configurationGroup} -allConfigurations") - } - } - // Set the affinity. - Utilities.setMachineAffinity(newJob, osForMachineAffinity, 'latest-or-auto') - // Set up standard options. - Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}") - // Set up triggers - if (isPR) { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "${osName} ${configurationGroup} AllConfigurations Build") - } - else { - // Set a push trigger - Utilities.addGithubPushTrigger(newJob) - } - } - } -} // ************************** // Define innerloop testing. These jobs run on every merge and a subset of them run on every PR, the ones // that don't run per PR can be requested via a magic phrase. // ************************** [true, false].each { isPR -> - ['netcoreapp', 'netfx'].each { targetGroup -> + ['netcoreapp'].each { targetGroup -> (targetGroupOsMapInnerloop[targetGroup]).each { osName -> ['Debug', 'Release'].each { configurationGroup -> def osGroup = osGroupMap[osName] @@ -341,13 +271,7 @@ def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ub // Set up triggers if (isPR) { targetGroupString = targetGroupString.replaceAll('_', ' '); - // Set PR trigger only run netfx jobs automatically on every PR, the other legs except OSX10.12 are covered by the new portable pipeline legs - if (targetGroup == 'netfx' || osName == 'OSX10.12') { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "Innerloop ${targetGroupString}${osName} ${configurationGroup} ${archGroup} Build and Test") - } - else { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "Innerloop ${targetGroupString}${osName} ${configurationGroup} ${archGroup} Build and Test", "(?i).*test\\W+innerloop\\W+${targetGroupString}${osName}\\W+${configurationGroup}.*") - } + Utilities.addGithubPRTriggerForBranch(newJob, branch, "Innerloop ${targetGroupString}${osName} ${configurationGroup} ${archGroup} Build and Test", "(?i).*test\\W+innerloop\\W+${targetGroupString}${osName}\\W+${configurationGroup}.*") } else { // Set a push trigger @@ -365,12 +289,8 @@ def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ub [true, false].each { isPR -> ['netcoreapp'].each { targetGroup -> ['Debug', 'Release'].each { configurationGroup -> - ['Ubuntu14.04', 'Ubuntu16.04', 'Tizen'].each { osName -> - if (osName == "Ubuntu14.04") { - linuxCodeName="trusty" - abi = "arm" - } - else if (osName == "Ubuntu16.04") { + ['Linux', 'Tizen'].each { osName -> + if (osName == "Linux") { linuxCodeName="xenial" abi = "arm" } @@ -406,12 +326,12 @@ def targetGroupOsMapInnerloop = ['netcoreapp': ['Windows_NT', 'Ubuntu14.04', 'Ub // Set up triggers if (isPR) { - // We run Tizen release/debug, Ubuntu 14.04 release and Ubuntu 16.04 debug for ARM on every PR. - if (osName == "Tizen" || (osName == "Ubuntu14.04" && configurationGroup == "Release") || (osName == "Ubuntu16.04" && configurationGroup == "Debug")) { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "Innerloop ${osName} ${abi} ${configurationGroup} Cross Build") + // We run Tizen Debug and Linux Release as default PR builds + if ((osName == "Tizen" && configurationGroup == "Debug") || (osName == "Linux" && configurationGroup == "Release") ) { + Utilities.addGithubPRTriggerForBranch(newJob, branch, "${osName} ${abi} ${configurationGroup} Build") } else { - Utilities.addGithubPRTriggerForBranch(newJob, branch, "Innerloop ${osName} ${abi} ${configurationGroup} Cross Build", "(?i).*test\\W+innerloop\\W+${osName}\\W+${abi}\\W+${configurationGroup}.*") + Utilities.addGithubPRTriggerForBranch(newJob, branch, "${osName} ${abi} ${configurationGroup} Build", "(?i).*test\\W+${osName}\\W+${abi}\\W+${configurationGroup}.*") } } else { |