From daad6a4862531232a71fde4812fed5d1f7dd5207 Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Thu, 20 Sep 2018 00:22:40 -0700 Subject: [PATCH] Fix arm/arm64 Jenkins views Filter out the non-flow jobs, especially the corefx builds that are consumed by corefx flow jobs. Commit migrated from https://github.com/dotnet/coreclr/commit/3a77e02658e8dafbd34f4b49146f4720c9f6f610 --- src/coreclr/netci.groovy | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/coreclr/netci.groovy b/src/coreclr/netci.groovy index 654fa9c..c67fa6a 100755 --- a/src/coreclr/netci.groovy +++ b/src/coreclr/netci.groovy @@ -648,12 +648,31 @@ def static addToPeriodicView(def job) { } } -def static addToViews(def job, def isPR, def architecture, def os) { +def static addToViews(def job, def isFlowJob, def isPR, def architecture, def os, def configuration, def scenario) { if (isPR) { // No views want PR jobs currently. return } + // We don't want to include in view any job that is only used by a flow job (because we want the views to have only the + // "top-level" jobs. Build only jobs are such jobs. + if (os == 'Windows_NT_BuildOnly') { + return + } + + if (!isFlowJob) { + // For non-flow jobs, which ones are only used by flow jobs? + if ((architecture == 'arm') || (architecture == 'arm64')) { + if (isCoreFxScenario(scenario)) { + // We have corefx-specific scenario builds for each of the runs, but these are driven by flow jobs. + return + } + + // We're left with the basic normal/innerloop builds. We might want to remove these from the views also, if desired. + // However, there are a few, like the Debug Build, that is build only, not "Build and Test", that we should leave. + } + } + // Add to architecture view. Views.ArchitectureViews[architecture].with { jobs { @@ -2873,12 +2892,7 @@ Constants.allScenarios.each { scenario -> // Create the new job def newJob = job(Utilities.getFullJobName(project, jobName, isPR, folderName)) {} - // We don't want to include in view any job that is only used by a flow job (because we want the views to have only the - // "top-level" jobs. Build only jobs are such jobs. - if (!isBuildOnly) - { - addToViews(newJob, isPR, architecture, os) - } + addToViews(newJob, false, isPR, architecture, os, configuration, scenario) // isFlowJob == false setJobMachineAffinity(architecture, os, true, false, false, newJob) // isBuildJob = true, isTestJob = false, isFlowJob = false @@ -3633,7 +3647,7 @@ build(params + [CORECLR_BUILD: coreclrBuildJob.build.number, JobReport.Report.addReference(fullTestJobName) } - addToViews(newFlowJob, isPR, architecture, os) + addToViews(newFlowJob, true, isPR, architecture, os, configuration, scenario) // isFlowJob = true setJobMachineAffinity(architecture, os, false, false, true, newFlowJob) // isBuildJob = false, isTestJob = false, isFlowJob = true -- 2.7.4