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
--- 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