diff options
Diffstat (limited to 'security/nss/automation/taskcluster/graph/src/extend.js')
-rw-r--r-- | security/nss/automation/taskcluster/graph/src/extend.js | 176 |
1 files changed, 116 insertions, 60 deletions
diff --git a/security/nss/automation/taskcluster/graph/src/extend.js b/security/nss/automation/taskcluster/graph/src/extend.js index 5305325c5..1302602bc 100644 --- a/security/nss/automation/taskcluster/graph/src/extend.js +++ b/security/nss/automation/taskcluster/graph/src/extend.js @@ -10,9 +10,19 @@ const LINUX_IMAGE = { path: "automation/taskcluster/docker" }; -const LINUX_CLANG39_IMAGE = { - name: "linux-clang-3.9", - path: "automation/taskcluster/docker-clang-3.9" +const LINUX_BUILDS_IMAGE = { + name: "linux-builds", + path: "automation/taskcluster/docker-builds" +}; + +const LINUX_INTEROP_IMAGE = { + name: "linux-interop", + path: "automation/taskcluster/docker-interop" +}; + +const CLANG_FORMAT_IMAGE = { + name: "clang-format", + path: "automation/taskcluster/docker-clang-format" }; const LINUX_GCC44_IMAGE = { @@ -25,6 +35,12 @@ const FUZZ_IMAGE = { path: "automation/taskcluster/docker-fuzz" }; +// Bug 1488148 - temporary image for fuzzing 32-bit builds. +const FUZZ_IMAGE_32 = { + name: "fuzz32", + path: "automation/taskcluster/docker-fuzz32" +}; + const HACL_GEN_IMAGE = { name: "hacl", path: "automation/taskcluster/docker-hacl" @@ -59,7 +75,7 @@ queue.filter(task => { } } - if (task.tests == "bogo" || task.tests == "interop") { + if (task.tests == "bogo" || task.tests == "interop" || task.tests == "tlsfuzzer") { // No windows if (task.platform == "windows2012-64" || task.platform == "windows2012-32") { @@ -89,7 +105,9 @@ queue.filter(task => { if (task.group == "Test") { // Don't run test builds on old make platforms, and not for fips gyp. - if (task.collection == "make" || task.collection == "fips") { + // Disable on aarch64, see bug 1488331. + if (task.collection == "make" || task.collection == "fips" + || task.platform == "aarch64") { return false; } } @@ -134,13 +152,13 @@ export default async function main() { await scheduleLinux("Linux 32 (opt)", { platform: "linux32", image: LINUX_IMAGE - }, "-m32 --opt"); + }, "-t ia32 --opt"); await scheduleLinux("Linux 32 (debug)", { platform: "linux32", collection: "debug", image: LINUX_IMAGE - }, "-m32"); + }, "-t ia32"); await scheduleLinux("Linux 64 (opt)", { platform: "linux64", @@ -193,8 +211,8 @@ export default async function main() { UBSAN_OPTIONS: "print_stacktrace=1", NSS_DISABLE_ARENA_FREE_LIST: "1", NSS_DISABLE_UNLOAD: "1", - CC: "clang-5.0", - CCC: "clang++-5.0", + CC: "clang", + CCC: "clang++", }, platform: "linux64", collection: "asan", @@ -230,12 +248,12 @@ export default async function main() { await scheduleWindows("Windows 2012 32 (opt)", { platform: "windows2012-32", - }, "build_gyp.sh --opt -m32"); + }, "build_gyp.sh --opt -t ia32"); await scheduleWindows("Windows 2012 32 (debug)", { platform: "windows2012-32", collection: "debug" - }, "build_gyp.sh -m32"); + }, "build_gyp.sh -t ia32"); await scheduleFuzzing(); await scheduleFuzzing32(); @@ -251,29 +269,29 @@ export default async function main() { }; await scheduleLinux("Linux AArch64 (debug)", - merge({ + merge(aarch64_base, { command: [ "/bin/bash", "-c", "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh" ], collection: "debug", - }, aarch64_base) + }) ); await scheduleLinux("Linux AArch64 (opt)", - merge({ + merge(aarch64_base, { command: [ "/bin/bash", "-c", "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh --opt" ], collection: "opt", - }, aarch64_base) + }) ); await scheduleLinux("Linux AArch64 (debug, make)", - merge({ + merge(aarch64_base, { env: {USE_64: "1"}, command: [ "/bin/bash", @@ -281,7 +299,7 @@ export default async function main() { "bin/checkout.sh && nss/automation/taskcluster/scripts/build.sh" ], collection: "make", - }, aarch64_base) + }) ); await scheduleMac("Mac (opt)", {collection: "opt"}, "--opt"); @@ -303,7 +321,7 @@ async function scheduleMac(name, base, args = "") { }); // Build base definition. - let build_base = merge({ + let build_base = merge(mac_base, { command: [ MAC_CHECKOUT_CMD, ["bash", "-c", @@ -320,7 +338,7 @@ async function scheduleMac(name, base, args = "") { }], kind: "build", symbol: "B" - }, mac_base); + }); // The task that builds NSPR+NSS. let task_build = queue.scheduleTask(merge(build_base, {name})); @@ -351,14 +369,18 @@ async function scheduleMac(name, base, args = "") { /*****************************************************************************/ -async function scheduleLinux(name, base, args = "") { - // Build base definition. - let build_base = merge({ +async function scheduleLinux(name, overrides, args = "") { + // Construct a base definition. This takes |overrides| second because + // callers expect to be able to overwrite the |command| key. + let base = merge({ command: [ "/bin/bash", "-c", "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh " + args ], + }, overrides); + // The base for building. + let build_base = merge(base, { artifacts: { public: { expires: 24 * 7, @@ -367,8 +389,8 @@ async function scheduleLinux(name, base, args = "") { } }, kind: "build", - symbol: "B" - }, base); + symbol: "B", + }); // The task that builds NSPR+NSS. let task_build = queue.scheduleTask(merge(build_base, {name})); @@ -434,14 +456,17 @@ async function scheduleLinux(name, base, args = "") { })); // Extra builds. - let extra_base = merge({group: "Builds"}, build_base); + let extra_base = merge(build_base, { + group: "Builds", + image: LINUX_BUILDS_IMAGE, + }); queue.scheduleTask(merge(extra_base, { - name: `${name} w/ clang-5.0`, + name: `${name} w/ clang-4`, env: { - CC: "clang-5.0", - CCC: "clang++-5.0", + CC: "clang-4.0", + CCC: "clang++-4.0", }, - symbol: "clang-5.0" + symbol: "clang-4" })); queue.scheduleTask(merge(extra_base, { @@ -474,16 +499,26 @@ async function scheduleLinux(name, base, args = "") { })); queue.scheduleTask(merge(extra_base, { - name: `${name} w/ gcc-6.1`, + name: `${name} w/ gcc-5`, + env: { + CC: "gcc-5", + CCC: "g++-5" + }, + symbol: "gcc-5" + })); + + queue.scheduleTask(merge(extra_base, { + name: `${name} w/ gcc-6`, env: { CC: "gcc-6", CCC: "g++-6" }, - symbol: "gcc-6.1" + symbol: "gcc-6" })); queue.scheduleTask(merge(extra_base, { name: `${name} w/ modular builds`, + image: LINUX_IMAGE, env: {NSS_BUILD_MODULAR: "1"}, command: [ "/bin/bash", @@ -493,7 +528,7 @@ async function scheduleLinux(name, base, args = "") { symbol: "modular" })); - await scheduleTestBuilds(merge(base, {group: "Test"}), args); + await scheduleTestBuilds(name + " Test", merge(base, {group: "Test"}), args); return queue.submit(); } @@ -534,7 +569,7 @@ async function scheduleFuzzing() { }; // Build base definition. - let build_base = merge({ + let build_base = merge(base, { command: [ "/bin/bash", "-c", @@ -550,7 +585,7 @@ async function scheduleFuzzing() { }, kind: "build", symbol: "B" - }, base); + }); // The task that builds NSPR+NSS. let task_build = queue.scheduleTask(merge(build_base, { @@ -635,16 +670,16 @@ async function scheduleFuzzing32() { features: ["allowPtrace"], platform: "linux32", collection: "fuzz", - image: FUZZ_IMAGE + image: FUZZ_IMAGE_32 }; // Build base definition. - let build_base = merge({ + let build_base = merge(base, { command: [ "/bin/bash", "-c", "bin/checkout.sh && " + - "nss/automation/taskcluster/scripts/build_gyp.sh -g -v --fuzz -m32" + "nss/automation/taskcluster/scripts/build_gyp.sh -g -v --fuzz -t ia32" ], artifacts: { public: { @@ -655,7 +690,7 @@ async function scheduleFuzzing32() { }, kind: "build", symbol: "B" - }, base); + }); // The task that builds NSPR+NSS. let task_build = queue.scheduleTask(merge(build_base, { @@ -671,7 +706,7 @@ async function scheduleFuzzing32() { "/bin/bash", "-c", "bin/checkout.sh && " + - "nss/automation/taskcluster/scripts/build_gyp.sh -g -v --fuzz=tls -m32" + "nss/automation/taskcluster/scripts/build_gyp.sh -g -v --fuzz=tls -t ia32" ], })); @@ -728,9 +763,9 @@ async function scheduleFuzzing32() { /*****************************************************************************/ -async function scheduleTestBuilds(base, args = "") { +async function scheduleTestBuilds(name, base, args = "") { // Build base definition. - let build = merge({ + let build = merge(base, { command: [ "/bin/bash", "-c", @@ -746,8 +781,15 @@ async function scheduleTestBuilds(base, args = "") { }, kind: "build", symbol: "B", - name: "Linux 64 (debug, test)" - }, base); + name: `${name} build`, + }); + + // On linux we have a specialized build image for building. + if (build.platform === "linux32" || build.platform === "linux64") { + build = merge(build, { + image: LINUX_BUILDS_IMAGE, + }); + } // The task that builds NSPR+NSS. let task_build = queue.scheduleTask(build); @@ -755,7 +797,7 @@ async function scheduleTestBuilds(base, args = "") { // Schedule tests. queue.scheduleTask(merge(base, { parent: task_build, - name: "mpi", + name: `${name} mpi tests`, command: [ "/bin/bash", "-c", @@ -773,7 +815,7 @@ async function scheduleTestBuilds(base, args = "") { "-c", "bin/checkout.sh && nss/automation/taskcluster/scripts/run_tests.sh" ], - name: "Gtests", + name: `${name} gtests`, symbol: "Gtest", tests: "gtests", cycle: "standard", @@ -790,12 +832,12 @@ async function scheduleWindows(name, base, build_script) { base = merge(base, { workerType: "nss-win2012r2", env: { - PATH: "c:\\mozilla-build\\python;c:\\mozilla-build\\msys\\local\\bin;" + - "c:\\mozilla-build\\7zip;c:\\mozilla-build\\info-zip;" + - "c:\\mozilla-build\\python\\Scripts;c:\\mozilla-build\\yasm;" + - "c:\\mozilla-build\\msys\\bin;c:\\Windows\\system32;" + - "c:\\mozilla-build\\upx391w;c:\\mozilla-build\\moztools-x64\\bin;" + - "c:\\mozilla-build\\wget", + PATH: "c:\\mozilla-build\\bin;c:\\mozilla-build\\python;" + + "c:\\mozilla-build\\msys\\local\\bin;c:\\mozilla-build\\7zip;" + + "c:\\mozilla-build\\info-zip;c:\\mozilla-build\\python\\Scripts;" + + "c:\\mozilla-build\\yasm;c:\\mozilla-build\\msys\\bin;" + + "c:\\Windows\\system32;c:\\mozilla-build\\upx391w;" + + "c:\\mozilla-build\\moztools-x64\\bin;c:\\mozilla-build\\wget", DOMSUF: "localdomain", HOST: "localhost", } @@ -881,7 +923,7 @@ async function scheduleWindows(name, base, build_script) { /*****************************************************************************/ function scheduleTests(task_build, task_cert, test_base) { - test_base = merge({kind: "test"}, test_base); + test_base = merge(test_base, {kind: "test"}); // Schedule tests that do NOT need certificates. let no_cert_base = merge(test_base, {parent: task_build}); @@ -889,10 +931,21 @@ function scheduleTests(task_build, task_cert, test_base) { name: "Gtests", symbol: "Gtest", tests: "ssl_gtests gtests", cycle: "standard" })); queue.scheduleTask(merge(no_cert_base, { - name: "Bogo tests", symbol: "Bogo", tests: "bogo", cycle: "standard" + name: "Bogo tests", + symbol: "Bogo", + tests: "bogo", + cycle: "standard", + image: LINUX_INTEROP_IMAGE, })); queue.scheduleTask(merge(no_cert_base, { - name: "Interop tests", symbol: "Interop", tests: "interop", cycle: "standard" + name: "Interop tests", + symbol: "Interop", + tests: "interop", + cycle: "standard", + image: LINUX_INTEROP_IMAGE, + })); + queue.scheduleTask(merge(no_cert_base, { + name: "tlsfuzzer tests", symbol: "tlsfuzzer", tests: "tlsfuzzer", cycle: "standard" })); queue.scheduleTask(merge(no_cert_base, { name: "Chains tests", symbol: "Chains", tests: "chains" @@ -928,6 +981,9 @@ function scheduleTests(task_build, task_cert, test_base) { queue.scheduleTask(merge(no_cert_base, { name: "SDR tests", symbol: "SDR", tests: "sdr" })); + queue.scheduleTask(merge(no_cert_base, { + name: "Policy tests", symbol: "Policy", tests: "policy" + })); // Schedule tests that need certificates. let cert_base = merge(test_base, {parent: task_cert}); @@ -971,11 +1027,11 @@ async function scheduleTools() { kind: "test" }; - //ABI check task + // ABI check task queue.scheduleTask(merge(base, { symbol: "abi", name: "abi", - image: LINUX_IMAGE, + image: LINUX_BUILDS_IMAGE, command: [ "/bin/bash", "-c", @@ -984,9 +1040,9 @@ async function scheduleTools() { })); queue.scheduleTask(merge(base, { - symbol: "clang-format-3.9", - name: "clang-format-3.9", - image: LINUX_CLANG39_IMAGE, + symbol: "clang-format", + name: "clang-format", + image: CLANG_FORMAT_IMAGE, command: [ "/bin/bash", "-c", @@ -1049,7 +1105,7 @@ async function scheduleTools() { command: [ "/bin/bash", "-c", - "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh --disable-tests --emit-llvm -m32" + "bin/checkout.sh && nss/automation/taskcluster/scripts/build_gyp.sh --disable-tests --emit-llvm -t ia32" ] })); |