Bug 1310130 - Remove Linux x64 debug builds from TC r=franziskus
authorTim Taubert <ttaubert@mozilla.com>
Fri, 14 Oct 2016 14:36:33 +0200
changeset 12715 e29198e8a4d76f0dd0352c9a8fb71fcd2258bc71
parent 12714 faab2bb21f8ee7da259bb9ca50a8622a5252a3b5
child 12716 e0c174ad96f9fb6a2a15a967d7b3b41e11edf2e0
push id1665
push userttaubert@mozilla.com
push dateFri, 14 Oct 2016 12:37:18 +0000
reviewersfranziskus
bugs1310130
Bug 1310130 - Remove Linux x64 debug builds from TC r=franziskus Differential Revision: https://nss-dev.phacility.com/D91
automation/taskcluster/graph/src/extend.js
automation/taskcluster/graph/src/try_syntax.js
--- a/automation/taskcluster/graph/src/extend.js
+++ b/automation/taskcluster/graph/src/extend.js
@@ -15,24 +15,33 @@ const WINDOWS_CHECKOUT_CMD =
 /*****************************************************************************/
 
 function isSanitizer(task) {
   return task.collection == "asan" || task.collection == "ubsan";
 }
 
 queue.filter(task => {
   if (task.group == "Builds") {
-    // Remove extra builds on ASan and ARM.
-    if (isSanitizer(task) || task.collection == "arm-debug") {
+    // Remove extra builds on UBSan and ARM.
+    if (task.collection == "ubsan" || task.collection == "arm-debug") {
       return false;
     }
 
-    // Remove extra builds w/o libpkix for non-linux64-debug.
-    if (task.symbol == "noLibpkix" &&
-        (task.platform != "linux64" || task.collection != "debug")) {
+    // Remove extra builds w/o libpkix for non-asan.
+    if (task.symbol == "noLibpkix" && task.collection != "asan") {
+      return false;
+    }
+
+    // Remove extra builds w/ clang-3.9 on ASan.
+    if (task.symbol == "clang-3.9" && task.collection == "asan") {
+      return false;
+    }
+
+    // Remove extra builds w/ gcc-5 on non-ASan.
+    if (task.symbol == "gcc-5" && task.collection != "asan") {
       return false;
     }
   }
 
   if (task.tests == "bogo") {
     // No BoGo tests on Windows.
     if (task.platform == "windows2012-64") {
       return false;
@@ -95,23 +104,16 @@ export default async function main() {
   });
 
   await scheduleLinux("Linux 64 (opt)", {
     env: {USE_64: "1", BUILD_OPT: "1"},
     platform: "linux64",
     image: LINUX_IMAGE
   });
 
-  await scheduleLinux("Linux 64 (debug)", {
-    env: {USE_64: "1"},
-    platform: "linux64",
-    collection: "debug",
-    image: LINUX_IMAGE
-  });
-
   await scheduleLinux("Linux 64 (debug, gyp)", {
     command: [
       "/bin/bash",
       "-c",
       "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh"
     ],
     env: {USE_64: "1"},
     platform: "linux64",
@@ -231,16 +233,25 @@ async function scheduleLinux(name, base)
     env: {
       GCC_VERSION: "gcc-4.8",
       GXX_VERSION: "g++-4.8"
     },
     symbol: "gcc-4.8"
   }));
 
   queue.scheduleTask(merge(extra_base, {
+    name: `${name} w/ gcc-5`,
+    env: {
+      GCC_VERSION: "gcc-5",
+      GXX_VERSION: "g++-5"
+    },
+    symbol: "gcc-5"
+  }));
+
+  queue.scheduleTask(merge(extra_base, {
     name: `${name} w/ gcc-6.1`,
     env: {
       GCC_VERSION: "gcc-6",
       GXX_VERSION: "g++-6"
     },
     symbol: "gcc-6.1"
   }));
 
--- a/automation/taskcluster/graph/src/try_syntax.js
+++ b/automation/taskcluster/graph/src/try_syntax.js
@@ -17,17 +17,17 @@ function parseOptions(opts) {
   let builds = intersect(opts.build.split(""), ["d", "o"]);
 
   // If the given value is nonsense default to debug and opt builds.
   if (builds.length == 0) {
     builds = ["d", "o"];
   }
 
   // Parse platforms.
-  let allPlatforms = ["linux", "linux64", "linux64-asan", "win64", "arm", "linux64-gyp"];
+  let allPlatforms = ["linux", "linux64", "win64", "arm", "linux64-gyp"];
   let platforms = intersect(opts.platform.split(/\s*,\s*/), allPlatforms);
 
   // If the given value is nonsense or "none" default to all platforms.
   if (platforms.length == 0 && opts.platform != "none") {
     platforms = allPlatforms;
   }
 
   // Parse unit tests.
@@ -95,45 +95,42 @@ function filter(opts) {
     }
 
     let coll = name => name == (task.collection || "opt");
 
     // Filter by platform.
     let found = opts.platforms.some(platform => {
       let aliases = {
         "linux": "linux32",
-        "linux64-asan": "linux64",
         "linux64-gyp": "linux64",
         "win64": "windows2012-64",
         "arm": "linux32"
       };
 
       // Check the platform name.
       let keep = (task.platform == (aliases[platform] || platform));
 
       // Additional checks.
-      if (platform == "linux64-asan") {
-        keep &= coll("asan") || coll("ubsan");
-      } else if (platform == "arm") {
+      if (platform == "arm") {
         keep &= coll("arm-opt") || coll("arm-debug");
       } else if (platform == "linux64-gyp") {
         keep &= coll("gyp");
       } else {
-        keep &= coll("opt") || coll("debug");
+        keep &= coll("opt") || coll("debug") || coll("asan") || coll("ubsan");
       }
 
       return keep;
     });
 
     if (!found) {
       return false;
     }
 
     // Finally, filter by build type.
-    let isDebug = coll("debug") || coll("asan") || coll("arm-debug") || coll("gyp");
+    let isDebug = coll("debug") || coll("asan") || coll("ubsan") || coll("arm-debug") || coll("gyp");
     return (isDebug && opts.builds.includes("d")) ||
            (!isDebug && opts.builds.includes("o"));
   }
 }
 
 export function initFilter() {
   let comment = process.env.TC_COMMENT || "";