Bug 1391806: Move valgrind task to its own docker image. r=ted draft
authorWander Lairson Costa <wcosta@mozilla.com>
Mon, 21 Aug 2017 08:50:08 -0300
changeset 649872 cc66813cab430d906643fbadf63c661e14784f6f
parent 649871 c7c96eebbcb91e5e0c8ef0dbbb5324812fa1e476
child 727215 7b6ae191d9d605c30cb0d57a5992db5270932dac
push id75178
push userwcosta@mozilla.com
push dateMon, 21 Aug 2017 11:50:28 +0000
reviewersted
bugs1391806, 1382280
milestone57.0a1
Bug 1391806: Move valgrind task to its own docker image. r=ted bug 1382280 tripled the size of desktop-build image because of installation of debug symbols. It is only used for valgrind, so let's move valgrind task to use its own image. MozReview-Commit-ID: 16St7dDj8tr
taskcluster/ci/docker-image/kind.yml
taskcluster/ci/valgrind/kind.yml
taskcluster/docker/desktop-build/Dockerfile
taskcluster/docker/recipes/centos6-build-system-setup.sh
taskcluster/docker/valgrind-build/Dockerfile
--- a/taskcluster/ci/docker-image/kind.yml
+++ b/taskcluster/ci/docker-image/kind.yml
@@ -13,14 +13,16 @@ transforms:
 # (to use subdirectory clones of the proper directory), at which point we can
 # generate tasks for every docker image in the directory, secure in the
 # knowledge that unnecessary images will be omitted from the target task graph
 jobs:
   desktop1604-test:
     symbol: I(dt16t)
   desktop-build:
     symbol: I(db)
+  valgrind-build:
+    symbol: I(vb)
   lint:
     symbol: I(lnt)
   android-gradle-build:
     symbol: I(agb)
   index-task:
     symbol: I(idx)
--- a/taskcluster/ci/valgrind/kind.yml
+++ b/taskcluster/ci/valgrind/kind.yml
@@ -21,17 +21,17 @@ jobs:
             job-name: linux64-valgrind-opt
         treeherder:
             platform: linux64/opt
             symbol: tc(V)
             kind: build
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
-            docker-image: {in-tree: desktop-build}
+            docker-image: {in-tree: valgrind-build}
             max-run-time: 72000
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/linux64/releng.manifest"
         run:
             using: mozharness
             actions: [get-secrets build valgrind-test]
             custom-build-variant-cfg: valgrind
             config:
--- a/taskcluster/docker/desktop-build/Dockerfile
+++ b/taskcluster/docker/desktop-build/Dockerfile
@@ -28,19 +28,16 @@ ADD topsrcdir/taskcluster/docker/recipes
 ADD topsrcdir/taskcluster/docker/recipes/install-make.sh /setup/install-make.sh
 
 # %include taskcluster/docker/recipes/install-cmake.sh
 ADD topsrcdir/taskcluster/docker/recipes/install-cmake.sh /setup/install-cmake.sh
 
 # %include taskcluster/docker/recipes/centos6-build-system-setup.sh
 ADD topsrcdir/taskcluster/docker/recipes/centos6-build-system-setup.sh /setup/system-setup.sh
 
-# %include taskcluster/docker/recipes/centos-install-debug-symbols.sh
-ADD topsrcdir/taskcluster/docker/recipes/centos-install-debug-symbols.sh /setup/install-debug-symbols.sh
-
 # TODO remove once base image doesn't install Mercurial
 RUN pip uninstall -y Mercurial
 
 RUN bash /setup/system-setup.sh
 
 # Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
 # %include taskcluster/docker/recipes/xvfb.sh
 ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
--- a/taskcluster/docker/recipes/centos6-build-system-setup.sh
+++ b/taskcluster/docker/recipes/centos6-build-system-setup.sh
@@ -4,11 +4,14 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 cd /setup
 
 . /setup/common.sh
 . /setup/install-mercurial.sh
 . /setup/install-make.sh
 . /setup/install-cmake.sh
-. /setup/install-debug-symbols.sh
+
+if [ -f /setup/install-debug-symbols.sh ]; then
+    . /setup/install-debug-symbols.sh
+fi
 
 rm -rf /setup
copy from taskcluster/docker/desktop-build/Dockerfile
copy to taskcluster/docker/valgrind-build/Dockerfile
--- a/taskcluster/docker/desktop-build/Dockerfile
+++ b/taskcluster/docker/valgrind-build/Dockerfile
@@ -3,18 +3,21 @@ FROM          taskcluster/centos6-build-
 MAINTAINER    Dustin J. Mitchell <dustin@mozilla.com>
 
 # TODO remove when base image is updated
 VOLUME /home/worker/workspace
 VOLUME /home/worker/tooltool-cache
 
 # Add build scripts; these are the entry points from the taskcluster worker, and
 # operate on environment variables
-ADD             bin /home/worker/bin
-RUN             chmod +x /home/worker/bin/*
+
+# %include taskcluster/docker/desktop-build/bin
+ADD topsrcdir/taskcluster/docker/desktop-build/bin /home/worker/bin
+
+RUN chmod +x /home/worker/bin/*
 
 # %include python/mozbuild/mozbuild/action/tooltool.py
 ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /builds/tooltool.py
 ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /setup/tooltool.py
 
 # %include testing/mozharness/external_tools/robustcheckout.py
 ADD topsrcdir/testing/mozharness/external_tools/robustcheckout.py /usr/local/mercurial/robustcheckout.py
 
@@ -44,31 +47,34 @@ RUN bash /setup/system-setup.sh
 # Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
 # %include taskcluster/docker/recipes/xvfb.sh
 ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
 
 # %include taskcluster/docker/recipes/run-task
 ADD topsrcdir/taskcluster/docker/recipes/run-task /home/worker/bin/run-task
 
 # Add configuration
-COPY            dot-config                    /home/worker/.config
+# %include taskcluster/docker/desktop-build/dot-config
+ADD topsrcdir/taskcluster/docker/desktop-build/dot-config /home/worker/.config
 
 # Generate machine uuid file
 RUN dbus-uuidgen --ensure=/var/lib/dbus/machine-id
 
 # Stubbed out credentials; mozharness looks for this file an issues a WARNING
 # if it's not found, which causes the build to fail.  Note that this needs to
 # be in the parent of the workspace directory and in the directory where
 # mozharness is run (not its --work-dir).  See Bug 1169652.
-ADD           oauth.txt /home/worker/
+# %include taskcluster/docker/desktop-build/oauth.txt
+ADD topsrcdir/taskcluster/docker/desktop-build/oauth.txt /home/worker/
 
 # stubbed out buildprops, which keeps mozharness from choking
 # Note that this needs to be in the parent of the workspace directory and in
 # the directory where mozharness is run (not its --work-dir)
-ADD           buildprops.json /home/worker/
+# %include taskcluster/docker/desktop-build/buildprops.json
+ADD topsrcdir/taskcluster/docker/desktop-build/buildprops.json /home/worker/
 
 # Move installation to base centos6-build image once Bug 1272629 is fixed
 # Install the screen package here to use with xvfb.
 # Install bison to build binutils.
 RUN yum install -y bison screen
 
 # Install libtool.
 RUN yum install -y libtool