Bug 1426892: Use ccache on buildbot; r?Fallen.
authorTom Prince <mozilla@hocat.ca>
Thu, 21 Dec 2017 12:12:42 -0700
changeset 29889 91d3849b3197f2702d0945df6098304a3ea0321e
parent 29888 616bad023654c1e801c5ece0b5886602c58de4b9
child 29890 678d7a3b822aa27c2d7371b7b9596e89fb753cda
push id2108
push userclokep@gmail.com
push dateMon, 22 Jan 2018 17:53:55 +0000
treeherdercomm-beta@c44930d8ad9b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersFallen
bugs1426892
Bug 1426892: Use ccache on buildbot; r?Fallen. MozReview-Commit-ID: FwVfmH4ae6S
build/mozconfig.cache
--- a/build/mozconfig.cache
+++ b/build/mozconfig.cache
@@ -1,141 +1,18 @@
 # 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/.
 
 # Setup for build cache
-
-# Avoid duplication if the file happens to be included twice.
-if test -z "$bucket" -a -z "$NO_CACHE"; then
-
-# buildbot (or builders that use buildprops.json):
-if [ -f $topsrcdir/../buildprops.json ]; then
-read branch platform master <<EOF
-$(python2.7 -c 'import json; p = json.loads(open("'"$topsrcdir"'/../buildprops.json").read())["properties"]; print p["branch"], p["platform"], p["master"]' 2> /dev/null)
-EOF
+#
+# If we're here, we are on buildbot, so just use ccache locally.
 
-bucket=
-if test -z "$SCCACHE_DISABLE"; then
-    case "${branch}" in
-    try)
-        case "${master}" in
-        *scl1.mozilla.com*|*.scl3.mozilla.com*)
-            bucket=mozilla-releng-s3-cache-us-west-1-try
-            ;;
-        *use1.mozilla.com*)
-            bucket=mozilla-releng-s3-cache-us-east-1-try
-            ;;
-        *usw2.mozilla.com*)
-            bucket=mozilla-releng-s3-cache-us-west-2-try
-            ;;
-        esac
+if test -z "$NO_CACHE"; then
+    # if we're on windows, disable ccache
+    case "${SYSTEMROOT}" in
+    *Windows)
         ;;
-    autoland|mozilla-inbound)
-        case "${master}" in
-        *use1.mozilla.com*)
-            bucket=mozilla-releng-s3-cache-us-east-1-prod
-            ;;
-        *usw2.mozilla.com*)
-            bucket=mozilla-releng-s3-cache-us-west-2-prod
-            ;;
-        esac
+    *)
+        export CCACHE=ccache
         ;;
     esac
 fi
-fi
-
-# builds where buildprops didn't have the data (eg: taskcluster or non-buildbot) and without sccache disabled:
-if test -z "$bucket" -a -z "$SCCACHE_DISABLE"; then
-
-    # prevent rerun if az is set, or wget is not available
-    if test -z "$availability_zone" -a -x "$(command -v wget)"; then
-        if test -n "${TASKCLUSTER_WORKER_GROUP}"; then
-            # TASKCLUSTER_WORKER_GROUP is just the region now, so
-            # stick an extra character on to make the already-convoluted logic
-            # here simpler.
-            availability_zone="${TASKCLUSTER_WORKER_GROUP}x"
-        else
-            # timeout after 1 second, and don't retry (failure indicates instance is not in ec2 or network issue)
-            # availability_zone is of the form <region><letter> where region is e.g. us-west-2, and az is us-west-2a
-            availability_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || true)
-        fi
-        if test -z "$availability_zone" -o "$availability_zone" = "not-ec2"; then
-            availability_zone=not-ec2
-        else
-            # region is az with last letter trimmed
-            region=${availability_zone%?}
-            # set S3 bucket according to tree (level)
-            case "${GECKO_HEAD_REPOSITORY}" in
-            *hg.mozilla.org/try*)
-                bucket=taskcluster-level-1-sccache-${region}
-                ;;
-            *hg.mozilla.org/integration/autoland*|*hg.mozilla.org/integration/mozilla-inbound*)
-                bucket=taskcluster-level-3-sccache-${region}
-                ;;
-            esac
-
-            # set a dummy master
-            case "${region}" in
-            eu-central-1)
-                master=dummy.euc1.mozilla.com
-                ;;
-            us-east-1)
-                master=dummy.use1.mozilla.com
-                ;;
-            us-west-1)
-                master=dummy.usw1.mozilla.com
-                ;;
-            us-west-2)
-                master=dummy.usw2.mozilla.com
-                ;;
-            esac
-        fi
-    fi
-fi
-
-# if platform hasn't been determined from buildprops, and we're on windows,
-# it must be set to prevent adding ac_add_options --with-ccache below
-if test -z "$platform"; then
-    # set platform based on the SYSTEMROOT env var
-    case "${SYSTEMROOT}" in
-    *Windows)
-        platform=windows
-        suffix=.exe
-        ;;
-    esac
-fi
-
-if test -z "$bucket"; then
-    case "$platform" in
-    win*) : ;;
-    *)
-        export CCACHE=ccache
-    esac
-else
-    mk_add_options "export SCCACHE_BUCKET=$bucket"
-    case "$master" in
-    *us[ew][12].mozilla.com*|*euc1.mozilla.com*)
-        mk_add_options "export SCCACHE_NAMESERVER=169.254.169.253"
-        ;;
-    esac
-    export CCACHE="$topsrcdir/sccache2/sccache${suffix}"
-    export SCCACHE_VERBOSE_STATS=1
-    mk_add_options MOZBUILD_MANAGE_SCCACHE_DAEMON=${topsrcdir}/sccache2/sccache
-    mk_add_options "UPLOAD_EXTRA_FILES+=sccache.log.gz"
-    case "$platform" in
-    win*)
-        # sccache supports a special flag to create depfiles.
-        #TODO: bug 1318370 - move this all into toolchain.configure
-        export _DEPEND_CFLAGS='-deps$(MDDEPDIR)/$(@F).pp'
-        # Windows builds have a default wrapper that needs to be overridden
-        mk_add_options "export CC_WRAPPER="
-        mk_add_options "export CXX_WRAPPER="
-        # For now, sccache doesn't support separate PDBs so force debug info to be
-        # in object files.
-        mk_add_options "export COMPILE_PDB_FLAG="
-        mk_add_options "export HOST_PDB_FLAG="
-        mk_add_options "export MOZ_DEBUG_FLAGS=-Z7"
-        ;;
-    esac
-fi
-
-fi