Bug 1390700 - Use sparse checkouts for decision task; r=dustin
authorGregory Szorc <gps@mozilla.com>
Wed, 23 Aug 2017 12:09:00 -0700
changeset 377036 bad2c7bdb5c76501f66023211a51871818b87f61
parent 377035 56ae3de7d69c13dcef92308a4695b5db7307dade
child 377037 2809e06c9afccd90f00769480b931b9cddbf5ecd
push id32397
push userphilringnalda@gmail.com
push dateSun, 27 Aug 2017 01:13:26 +0000
treeherdermozilla-central@30ee0dcda883 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
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 1390700 - Use sparse checkouts for decision task; r=dustin The updated Docker image contains robustcheckout and run-task support for sparse checkouts, which are obvious prerequisites. We change the cache name so sparse and non-sparse checkouts don't use the same working directory. If we didn't do this, tasks running from images with old Mercurial clients or without a sparse aware robustcheckout would fail. The effect of using a sparse checkout is that we reduce the number of files in the checkout from ~234,000 to ~3,600. This reduces time for a fresh checkout from several dozen seconds to under 2s. MozReview-Commit-ID: IJz794g8ZKH
--- a/.taskcluster.yml
+++ b/.taskcluster.yml
@@ -68,37 +68,39 @@ tasks:
         # checkout-gecko uses these to check out the source; the inputs
         # to `mach taskgraph decision` are all on the command line.
         GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-unified'
         GECKO_HEAD_REPOSITORY: '${repoUrl}'
         GECKO_HEAD_REF: '${push.revision}'
         GECKO_HEAD_REV: '${push.revision}'
         GECKO_COMMIT_MSG: '${push.comment}'
         HG_STORE_PATH: /home/worker/checkouts/hg-store
+        TASKCLUSTER_CACHES: /home/worker/checkouts
-        level-${repository.level}-checkouts: /home/worker/checkouts
+        level-${repository.level}-checkouts-sparse-v1: /home/worker/checkouts
         taskclusterProxy: true
         chainOfTrust: true
       # Note: This task is built server side without the context or tooling that
       # exist in tree so we must hard code the hash
       # XXX Changing this will break Chain of Trust without an associated puppet and
       # scriptworker patch!
-      image: 'taskcluster/decision:0.1.9@sha256:9d6a38ff675ba2f2f132bc1461e3a48b0ce56c90617a8a5c5f8c48c6eb8d06e0'
+      image: 'taskcluster/decision:0.1.10@sha256:c5451ee6c655b3d97d4baa3b0e29a5115f23e0991d4f7f36d2a8f793076d6854'
       maxRunTime: 1800
       # TODO use mozilla-unified for the base repository once the tc-vcs
       # tar.gz archives are created or tc-vcs isn't being used.
         - /home/worker/bin/run-task
         - '--vcs-checkout=/home/worker/checkouts/gecko'
+        - '--sparse-profile=build/sparse-profiles/taskgraph'
         - '--'
         - bash
         - -cx
         - $let:
             extraArgs: {$if: 'tasks_for == "hg-push"', then: '', else: '${cron.quoted_args}'}
           # NOTE: the explicit reference to mozilla-central below is required because android-stuff
           # still uses tc-vcs, which does not support mozilla-unified
           # https://bugzilla.mozilla.org/show_bug.cgi?id=1383973
--- a/taskcluster/docker/decision/HASH
+++ b/taskcluster/docker/decision/HASH
@@ -1,1 +1,1 @@
--- a/taskcluster/docker/decision/VERSION
+++ b/taskcluster/docker/decision/VERSION
@@ -1,1 +1,1 @@