Bug 1321847 - Add new linux jobs using the baseline of supported toolchains. r=mshal
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 02 Jun 2017 11:34:46 +0900
changeset 410236 d9b7971a270cde0cff0adbe068707fd6f92f5028
parent 410235 4db381159f27a7d1a1b5d112be7441290dc12550
child 410237 85f41e26f8b6e85b0d5ded8c182c5a6667968985
push id7391
push usermtabara@mozilla.com
push dateMon, 12 Jun 2017 13:08:53 +0000
treeherdermozilla-beta@2191d7f87e2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmshal
bugs1321847, 1367734, 1338311
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1321847 - Add new linux jobs using the baseline of supported toolchains. r=mshal For a long time, we've kind of forced the GCC version used to compile Firefox on automation to the minimum version we do support, because using a newer version would pretty much guarantee that builds with older versions would break. Ideally, the same would be true of rust, but it's not the case, and sure enough, building with older versions breaks. The most recent example is bug 1367734 making rustc 1.17.0 required but leaving configure checking for version 1.15.1. There are multiple reasons why we'd want to use newer versions of rust to build shipping versions of Firefox other than language requirements, but we should still ensure building with supported versions of rust doesn't break silently. Here we add a set of new linux jobs that build opt and debug build with the baseline of supported toolchains. At the moment, that's GCC 4.9, rust 1.15.1, and clang 3.9 (for bindgen). That's a copy of the current toolchains used for normal linux jobs, with rustc downgraded to the package used after bug 1338311. Further down the line, we'll be able to bump the versions of GCC, rust and/or clang for the shipped Firefox builds, while keeping those jobs on GCC 4.9, rust 1.15.1 and clang 3.9, until we do intentionally want to bump those versions (as well as the corresponding configure checks).
browser/config/tooltool-manifests/linux64/base-toolchains.manifest
taskcluster/ci/build/linux.yml
taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
copy from browser/config/tooltool-manifests/linux64/releng.manifest
copy to browser/config/tooltool-manifests/linux64/base-toolchains.manifest
--- a/browser/config/tooltool-manifests/linux64/releng.manifest
+++ b/browser/config/tooltool-manifests/linux64/base-toolchains.manifest
@@ -11,19 +11,19 @@
     "size": 12072532,
     "digest": "3915f8ec396c56a8a92e6f9695b70f09ce9d1582359d1258e37e3fd43a143bc974410e4cfc27f500e095f34a8956206e0ebf799b7287f0f38def0d5e34ed71c9",
     "algorithm": "sha512",
     "filename": "gtk3.tar.xz",
     "setup": "setup.sh",
     "unpack": true
   },
   {
-    "version": "rustc 1.17.0 (56124baa9 2017-04-24) repack with cargo 0.19.0-beta.1 (03efb7fc8 2017-04-23)",
-    "size": 121925324,
-    "digest": "218ec1fd0a00b50fc3f0ce497d2bb9eb2230c1998a1c22cfe8f61ac44d9b57a081e12e8cd946e9d960a1683ed50d625d62f35f2db6fa6aab82454f96f32cd7b2",
+    "version": "rustc 1.15.1 (021bd294c 2017-02-08) repack",
+    "size": 110077036,
+    "digest": "8b99d058cc081f6ca2a3cc88c3ca9c15232961d2539774dacee35e2258955ad8fc4cb0af3b903a3e3f8a264ddecb3baae9256502ffc178a2823779284ace2bd8",
     "algorithm": "sha512",
     "filename": "rustc.tar.xz",
     "unpack": true
   },
   {
     "version": "sccache rev d3aa1116844b50c03015266d2f48235509fa7deb",
     "algorithm": "sha512",
     "visibility": "public",
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -90,16 +90,65 @@ linux64-devedition-nightly/opt:
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
         custom-build-variant-cfg: devedition
     run-on-projects: [ 'mozilla-beta', ]
 
+linux64-base-toolchains/opt:
+    description: "Linux64 base toolchains Opt"
+    index:
+        product: firefox
+        job-name: linux64-base-toolchains-opt
+    treeherder:
+        platform: linux64/opt
+        symbol: tc(Bb)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 36000
+        env:
+            TOOLTOOL_MANIFEST: browser/config/tooltool-manifests/linux64/base-toolchains.manifest
+    run:
+        using: mozharness
+        actions: [get-secrets build generate-build-stats check-test update]
+        config:
+            - builds/releng_base_linux_64_builds.py
+            - balrog/production.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        tooltool-downloads: public
+        need-xvfb: true
+
+linux64-base-toolchains/debug:
+    description: "Linux64 base toolchains Debug"
+    index:
+        product: firefox
+        job-name: linux64-base-toolchains-debug
+    treeherder:
+        platform: linux64/debug
+        symbol: tc(Bb)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 36000
+        env:
+            TOOLTOOL_MANIFEST: browser/config/tooltool-manifests/linux64/base-toolchains.manifest
+    run:
+        using: mozharness
+        actions: [get-secrets build generate-build-stats check-test update]
+        config:
+            - builds/releng_base_linux_64_builds.py
+            - balrog/production.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: debug
+        tooltool-downloads: public
+        need-xvfb: true
+
 linux/opt:
     description: "Linux32 Opt"
     index:
         product: firefox
         job-name: linux-opt
     treeherder:
         platform: linux32/opt
         symbol: tc(B)
--- a/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
+++ b/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
@@ -28,16 +28,18 @@ JOB_NAME_WHITELIST = set([
     'linux-debug',
     'linux-devedition',
     'linux-opt',
     'linux-pgo',
     'linux64-add-on-devel',
     'linux64-artifact-opt',
     'linux64-asan-debug',
     'linux64-asan-opt',
+    'linux64-base-toolchains-debug',
+    'linux64-base-toolchains-opt',
     'linux64-fuzzing-asan-opt',
     'linux64-ccov-opt',
     'linux64-clang-tidy',
     'linux64-debug',
     'linux64-devedition',
     'linux64-jsdcov-opt',
     'linux64-opt',
     'linux64-pgo',