Bug 1380956 - Build the node_modules directory for ESLint on the docker image for the worker, rather than downloading it each time. r=ahal draft
authorMark Banner <standard8@mozilla.com>
Fri, 14 Jul 2017 11:19:07 +0100
changeset 609732 f2039d741295405100df389fa3b6be73647514f5
parent 609596 aff336ac161daa3ea350e59a288963edbd58ed39
child 609733 85fefecbf8d81ff421c3bf96eb4ef392e32987f8
push id68669
push usermbanner@mozilla.com
push dateMon, 17 Jul 2017 12:10:56 +0000
reviewersahal
bugs1380956
milestone56.0a1
Bug 1380956 - Build the node_modules directory for ESLint on the docker image for the worker, rather than downloading it each time. r=ahal MozReview-Commit-ID: B8QowXzWRlU
taskcluster/ci/source-test/mozlint.yml
taskcluster/docker/lint/Dockerfile
taskcluster/docker/lint/system-setup.sh
tools/lint/eslint/manifest.tt
tools/lint/eslint/update
tools/lint/eslint/update.sh
--- a/taskcluster/ci/source-test/mozlint.yml
+++ b/taskcluster/ci/source-test/mozlint.yml
@@ -8,19 +8,17 @@ mozlint-eslint:
     worker-type: aws-provisioner-v1/gecko-t-linux-xlarge
     worker:
         docker-image: {in-tree: "lint"}
         max-run-time: 1800
     run:
         using: run-task
         command: >
             cd /home/worker/checkouts/gecko/ &&
-            /build/tooltool.py fetch -m tools/lint/eslint/manifest.tt &&
-            tar xvfz eslint.tar.gz &&
-            rm eslint.tar.gz &&
+            cp -r /build/node_modules_eslint node_modules &&
             ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules &&
             ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules &&
             ./mach lint -l eslint -f treeherder --quiet
     when:
         files-changed:
             # Files that are likely audited.
             - '**/*.js'
             - '**/*.jsm'
--- a/taskcluster/docker/lint/Dockerfile
+++ b/taskcluster/docker/lint/Dockerfile
@@ -12,16 +12,18 @@ ADD topsrcdir/python/mozbuild/mozbuild/a
 ADD topsrcdir/testing/mozharness/external_tools/robustcheckout.py /usr/local/mercurial/robustcheckout.py
 
 # %include taskcluster/docker/recipes/install-node.sh
 ADD topsrcdir/taskcluster/docker/recipes/install-node.sh /build/install-node.sh
 
 # %include taskcluster/docker/recipes/install-mercurial.sh
 ADD topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /build/install-mercurial.sh
 ADD system-setup.sh /tmp/system-setup.sh
+# %include tools/lint/eslint/manifest.tt
+ADD topsrcdir/tools/lint/eslint/manifest.tt /tmp/eslint.tt
 # %include tools/lint/eslint/eslint-plugin-mozilla/manifest.tt
 ADD topsrcdir/tools/lint/eslint/eslint-plugin-mozilla/manifest.tt /tmp/eslint-plugin-mozilla.tt
 # %include tools/lint/flake8_/flake8_requirements.txt
 ADD topsrcdir/tools/lint/flake8_/flake8_requirements.txt /tmp/flake8_requirements.txt
 # %include tools/lint/tox/tox_requirements.txt
 ADD topsrcdir/tools/lint/tox/tox_requirements.txt /tmp/tox_requirements.txt
 RUN bash /tmp/system-setup.sh
 
--- a/taskcluster/docker/lint/system-setup.sh
+++ b/taskcluster/docker/lint/system-setup.sh
@@ -42,16 +42,18 @@ cd /build
 ###
 # ESLint Setup
 ###
 
 # install node
 
 . install-node.sh
 
+/build/tooltool.py fetch -m /tmp/eslint.tt
+mv /build/node_modules /build/node_modules_eslint
 /build/tooltool.py fetch -m /tmp/eslint-plugin-mozilla.tt
 mv /build/node_modules /build/node_modules_eslint-plugin-mozilla
 
 ###
 # Flake8 Setup
 ###
 
 cd /setup
--- a/tools/lint/eslint/manifest.tt
+++ b/tools/lint/eslint/manifest.tt
@@ -1,9 +1,10 @@
 [
   {
     "size": 2905242,
     "visibility": "public",
     "digest": "e5e239ffbc6ad3f152a046bf116c736da874dbf99aa98117eee72b7aaeef1a77304b2885b22a964d5d25dcc3652dee7b92996067bf14ffadecf6a883c52ef8d9",
     "algorithm": "sha512",
+    "unpack": true,
     "filename": "eslint.tar.gz"
   }
 ]
rename from tools/lint/eslint/update
rename to tools/lint/eslint/update.sh
--- a/tools/lint/eslint/update
+++ b/tools/lint/eslint/update.sh
@@ -58,17 +58,17 @@ echo "Creating eslint.tar.gz..."
 tar cvz --exclude=eslint-plugin-mozilla --exclude=eslint-plugin-spidermonkey-js -f eslint.tar.gz node_modules
 
 echo "Downloading tooltool..."
 wget https://raw.githubusercontent.com/mozilla/build-tooltool/master/tooltool.py
 chmod +x tooltool.py
 
 echo "Adding eslint.tar.gz to tooltool..."
 rm tools/lint/eslint/manifest.tt
-./tooltool.py add --visibility public eslint.tar.gz
+./tooltool.py add --visibility public --unpack eslint.tar.gz
 
 echo "Uploading eslint.tar.gz to tooltool..."
 ./tooltool.py upload --authentication-file=~/.tooltool-token --message "node_modules folder update for tools/lint/eslint"
 
 echo "Cleaning up..."
 mv manifest.tt tools/lint/eslint/manifest.tt
 rm eslint.tar.gz
 rm tooltool.py