From 3d6b2e2a1526384f52ec078acaca42dc760818ee Mon Sep 17 00:00:00 2001 From: Sean Gillespie Date: Fri, 18 Nov 2016 12:57:38 -0800 Subject: [PATCH] Add CI job and build.cmd command for building with FEATURE_STANDALONE_GC (dotnet/coreclr#8183) * Add CI job and build.cmd command for building with FEATURE_STANDALONE_GC * Add missed case * Correct a condition * Accidental fallthrough in switch * Only run on x64 Commit migrated from https://github.com/dotnet/coreclr/commit/ecc468cf683513a2c3e1635f7abcdb06101eec38 --- src/coreclr/build.cmd | 4 +++- src/coreclr/netci.groovy | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/coreclr/build.cmd b/src/coreclr/build.cmd index 7d00382..ba3dcf4 100644 --- a/src/coreclr/build.cmd +++ b/src/coreclr/build.cmd @@ -52,6 +52,7 @@ set __BuildTypeDebug=0 set __BuildTypeChecked=0 set __BuildTypeRelease=0 set __BuildJit32="-DBUILD_JIT32=0" +set __BuildStandaloneGC="-DFEATURE_STANDALONE_GC=0" set __PgoInstrument=0 @@ -109,6 +110,7 @@ if /i "%1" == "buildjit32" (set __BuildJit32="-DBUILD_JIT32=1"&set proc if /i "%1" == "pgoinstrument" (set __PgoInstrument=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if /i "%1" == "altjitcrossgen" (set __AltJitCrossgen=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) +if /i "%1" == "buildstandalonegc" (set __BuildStandaloneGC="-DFEATURE_STANDALONE_GC=1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if [!processedArgs!]==[] ( call set __UnprocessedBuildArgs=!__args! @@ -246,7 +248,7 @@ if %__BuildNative% EQU 1 ( pushd "%__IntermediatesDir%" set __ExtraCmakeArgs=!___SDKVersion! "-DCLR_CMAKE_TARGET_OS=%__BuildOs%" "-DCLR_CMAKE_PACKAGES_DIR=%__PackagesDir%" "-DCLR_CMAKE_PGO_INSTRUMENT=%__PgoInstrument%" - call "%__SourceDir%\pal\tools\gen-buildsys-win.bat" "%__ProjectDir%" %__VSVersion% %__BuildArch% %__BuildJit32% !__ExtraCmakeArgs! + call "%__SourceDir%\pal\tools\gen-buildsys-win.bat" "%__ProjectDir%" %__VSVersion% %__BuildArch% %__BuildJit32% %__BuildStandaloneGC% !__ExtraCmakeArgs! @if defined _echo @echo on popd :SkipConfigure diff --git a/src/coreclr/netci.groovy b/src/coreclr/netci.groovy index 36ac5d1..8550d19 100755 --- a/src/coreclr/netci.groovy +++ b/src/coreclr/netci.groovy @@ -77,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', 'formatting', 'gcsimulator'] + r2rJitStressScenarios + def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc', 'coverage', 'formatting', 'gcsimulator', 'standalone_gc'] + r2rJitStressScenarios def static configurationList = ['Debug', 'Checked', 'Release'] // This is the set of architectures def static architectureList = ['arm', 'arm64', 'x64', 'x86ryujit', 'x86lb'] @@ -435,6 +435,13 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, // TODO: Add once external email sending is available again // addEmailPublisher(job, 'dotnetgctests@microsoft.com') break + case 'standalone_gc': + assert (os == 'Windows_NT') + assert (configuration == 'Release' || configuration == 'Checked') + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetgctests@microsoft.com') + Utilities.addPeriodicTrigger(job, '@weekly') + break case 'ilrt': assert !(os in bidailyCrossList) // ILASM/ILDASM roundtrip one gets a daily build, and only for release @@ -961,6 +968,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GC Simulator", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'standalone_gc': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Standalone GC", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'minopts': assert (os == 'Windows_NT') || (os in Constants.crossList) Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - MinOpts)", @@ -1657,6 +1669,19 @@ combinedScenarios.each { scenario -> return } break + case 'standalone_gc': + if (os != 'Windows_NT') { + return + } + + if (architecture != 'x64') { + return + } + + if (configuration != 'Release' && configuration != 'Checked') { + return + } + break // We need Windows x64 Release bits for the code coverage build case 'coverage': if (os != 'Windows_NT') { @@ -1754,6 +1779,9 @@ combinedScenarios.each { scenario -> buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests" buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch}" } + else if (scenario == 'standalone_gc') { + buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} buildstandalonegc" + } else if (scenario == 'formatting') { buildCommands += "python -u tests\\scripts\\format.py -c %WORKSPACE% -o Windows_NT -a ${arch}" Utilities.addArchival(newJob, "format.patch", "", true, false) @@ -2235,6 +2263,10 @@ combinedScenarios.each { scenario -> return } break + case 'standalone_gc': + if (configuration != 'Release' && configuration != 'Checked') { + return + } case 'coverage': //We only want Ubuntu Release for coverage if (os != 'Ubuntu') { -- 2.7.4