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