Bug 1427340 - Build toolchains on a Debian-based docker image. r=gps
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 29 Dec 2017 16:45:52 +0900
changeset 453318 538460b6e1fd0126d2ba85ecc01609c1a728d324
parent 453317 767217abfb609e8728d4013c08a32c371a7b3326
child 453319 6e4c1669b6bafb90336ce4d9db9d134b081a9553
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1427340
milestone59.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 1427340 - Build toolchains on a Debian-based docker image. r=gps ... except libdmg-hfsplus. RedHat decided to patch libbz2 to have a different soname, so a binary built on Debian can't run on RedHat/CentOS. Ironically, a binary built on RedHat/CentOS can run on Debian. While we could use some tricks to make libdmg-hfsplus built on Debian work, at this point, it's not worth the effort. We can live with libdmg-hfsplus being built on CentOS until the builds that use it switch to Debian, which is imminent. ... and except mingw32-nsis. Sourceforce renewed their certificate last week and somehow the corresponding CA is not yet recognized by the ca-certificates in Debian wheezy (an update is underway but see below) ... and except wine, because it requires more 32-bits packages than can be installed on the toolchain-build docker image. But all things considered, the mingw32 builds don't need to be using the same docker images as the linux builds, and they could be, like the android builds, be based on a more recent build image. So the corresponding toolchains can be built on a more recent version of Debian too. Consequently, we keep all the mingw32 related toolchains on the desktop-build image for now.
taskcluster/ci/toolchain/linux.yml
taskcluster/ci/toolchain/macosx.yml
taskcluster/ci/toolchain/windows.yml
--- a/taskcluster/ci/toolchain/linux.yml
+++ b/taskcluster/ci/toolchain/linux.yml
@@ -1,22 +1,25 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+job-defaults:
+    worker:
+        docker-image: {in-tree: toolchain-build}
+
 linux64-clang-3.9:
     description: "Clang 3.9 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(clang3.9)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-3.9-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-3.9-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
@@ -29,17 +32,16 @@ linux64-clang-4:
     description: "Clang 4 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(clang4)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-4-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-4-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
@@ -51,17 +53,16 @@ linux64-clang-5:
     description: "Clang 5 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(clang5)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-5-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-5-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
@@ -73,17 +74,16 @@ linux64-clang-6-pre:
     description: "Clang 6 Pre toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(clang6p)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-6-pre-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-6-pre-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
@@ -98,17 +98,16 @@ linux64-clang-tidy:
         job-name: linux64-clang-tidy
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(clang-tidy)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-clang-tidy-linux.sh
         resources:
             - 'build/clang-plugin/**'
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-tidy-linux64.json'
@@ -121,17 +120,16 @@ linux64-gcc-4.9:
     description: "GCC 4.9 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(gcc4.9)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-gcc-4.9-linux.sh
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
         toolchain-artifact: public/build/gcc.tar.xz
 
@@ -139,17 +137,16 @@ linux64-gcc-6:
     description: "GCC 6 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(gcc6)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: toolchain-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-gcc-6-linux.sh
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
         toolchain-alias: linux64-gcc
         toolchain-artifact: public/build/gcc.tar.xz
@@ -158,17 +155,16 @@ linux64-sixgill:
     description: "sixgill GCC plugin build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(sixgill)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 3600
     run:
         using: toolchain-script
         script: build-gcc-sixgill-plugin-linux.sh
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
             - 'taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh'
         toolchain-artifact: public/build/sixgill.tar.xz
@@ -179,17 +175,16 @@ linux64-binutils:
     description: "Binutils toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(binutil)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-binutils-linux.sh
         resources:
             - 'build/unix/build-binutils/build-binutils.sh'
         toolchain-artifact: public/build/binutils.tar.xz
 
@@ -197,17 +192,16 @@ linux64-cctools-port:
     description: "cctools-port toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(cctools)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-cctools-port.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/cctools.tar.xz
     toolchains:
@@ -217,17 +211,16 @@ linux64-hfsplus:
     description: "hfsplus toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(hfs+)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-hfsplus-linux.sh
         resources:
             - 'build/unix/build-hfsplus/build-hfsplus.sh'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/hfsplus-tools.tar.xz
@@ -254,17 +247,16 @@ linux64-proguard-jar-repack:
     description: "proguard.jar repack toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(proguard-jar)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: repack-proguard-jar.sh
         toolchain-artifact: public/build/proguard-jar.tar.xz
         toolchain-alias: proguard-jar
 
 linux64-android-sdk-linux-repack:
@@ -326,17 +318,16 @@ linux64-rust-1.22:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(rust)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.22.1',
@@ -351,17 +342,16 @@ linux64-rust-1.19:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(rust-1.19)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.19.0',
@@ -375,17 +365,16 @@ linux64-rust-macos-1.22:
     description: "rust repack with macos-cross support"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(rust-macos)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.22.1',
@@ -400,17 +389,16 @@ linux64-rust-android-1.22:
     description: "rust repack with android-cross support"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(rust-android)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.22.1',
@@ -427,17 +415,16 @@ linux64-sccache:
     description: "sccache toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(sccache)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-sccache.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/sccache2.tar.xz
     toolchains:
@@ -448,17 +435,16 @@ linux64-gn:
     description: "gn toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(gn)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-gn-linux.sh
         tooltool-downloads: public
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
             - 'taskcluster/scripts/misc/build-gn-common.sh'
--- a/taskcluster/ci/toolchain/macosx.yml
+++ b/taskcluster/ci/toolchain/macosx.yml
@@ -1,22 +1,25 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+job-defaults:
+    worker:
+        docker-image: {in-tree: toolchain-build}
+
 macosx64-clang:
     description: "Clang toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TM(clang)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run:
         using: toolchain-script
         script: build-clang-macosx.sh
         tooltool-downloads: internal
         resources:
@@ -36,17 +39,16 @@ macosx64-clang-tidy:
         job-name: macosx64-clang-tidy
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TM(clang-tidy)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run:
         using: toolchain-script
         script: build-clang-tidy-macosx.sh
         tooltool-downloads: internal
         resources:
@@ -64,17 +66,16 @@ macosx64-cctools-port:
     description: "cctools-port toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TM(cctools)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run:
         using: toolchain-script
         script: build-cctools-port-macosx.sh
         tooltool-downloads: internal
         resources:
@@ -88,17 +89,16 @@ macosx64-gn:
     description: "gn toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TM(gn)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
-        docker-image: {in-tree: desktop-build}
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run:
         using: toolchain-script
         script: build-gn-macosx.sh
         tooltool-downloads: internal
         resources:
--- a/taskcluster/ci/toolchain/windows.yml
+++ b/taskcluster/ci/toolchain/windows.yml
@@ -98,17 +98,17 @@ win64-rust-1.22:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TW64(rust)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
+        docker-image: {in-tree: toolchain-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.22.1',
@@ -123,17 +123,17 @@ win64-rust-1.19:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TW64(rust-1.19)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
+        docker-image: {in-tree: toolchain-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.19.0',
@@ -146,17 +146,17 @@ win32-rust-1.23.0-beta.2:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TW32(rust)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
+        docker-image: {in-tree: toolchain-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', 'beta-2017-12-08',
@@ -170,17 +170,17 @@ mingw32-rust-1.22:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TMW(rust)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: desktop-build}
+        docker-image: {in-tree: toolchain-build}
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
         using: toolchain-script
         script: repack_rust.py
         arguments: [
             '--channel', '1.22.1',