gecko-dev/taskcluster/docker/lint/system-setup.sh

69 lines
1.4 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# This allows ubuntu-desktop to be installed without human interaction
export DEBIAN_FRONTEND=noninteractive
set -ve
test `whoami` == 'root'
mkdir -p /setup
cd /setup
apt_packages=()
apt_packages+=('curl')
apt_packages+=('python')
apt_packages+=('python-pip')
apt_packages+=('sudo')
apt_packages+=('xz-utils')
apt-get update
apt-get install -y ${apt_packages[@]}
# Without this we get spurious "LC_ALL: cannot change locale (en_US.UTF-8)" errors,
# and python scripts raise UnicodeEncodeError when trying to print unicode characters.
locale-gen en_US.UTF-8
dpkg-reconfigure locales
tooltool_fetch() {
cat >manifest.tt
/build/tooltool.py fetch
rm manifest.tt
}
cd /build
. install-mercurial.sh
###
# ESLint Setup
###
# install node
# For future reference things like this don't need to be uploaded to tooltool, as long
# as we verify the hash, we can download it from the external net.
Bug 1247168 - Convert lint image and tasks to use robustcheckout; r=dustin The robustcheckout Mercurial extension does a clone+checkout optimally. Read the bug for more on it. robustcheckout is already used by mozharness automation. It has resulted in a significant reduction in I/O usage and utilization in automation. This commit replaces tc-vcs with the robustcheckout equivalent. We replace the existing tc-vcs scope and cache with a new one. Because Dustin and I are paranoid, we maintain separate caches per SCM level - even though we could arguably share the same cache. Defense in depth. Robustcheckout (when used with --sharebase) pools storage for related repos automatically. i.e. changesets from inbound and central will be in the same store. This means you likely only have one copy of each changeset per cache. This can result in significant space savings. And, since there are fewer copies floating around, hg.mozilla.org and various network appliances are working less too! Since tc-vcs is no longer used, we stop it from being installed. While we're here, we also change the images to execute as the "worker" user. This happens automatically as a result of using the "checkout-and-run" script. MozReview-Commit-ID: EDeebuP7TkT --HG-- extra : rebase_source : 2bec5dd9d6fe5565831bb35f195859aa12dd0bf2 extra : intermediate-source : 06481d97a485f6566554b087bc3880d76361e8ec extra : source : d368700c93ef085325a081219d7aeb8512bc54a1 extra : histedit_source : c07505273fc8f10acf8e8d3ee01e327afd0aa63d
2016-07-19 20:30:03 +00:00
cd /setup
tooltool_fetch <<'EOF'
[
{
"size": 8310316,
"digest": "95f4fa3d9b215348393dfac4a1c5eff72e9ef85dca38eb69cc8e6c1fe5aada0136c3b182dc04ed5c19fb69f0ac7df85d9c4045b9eb382fcb545b0ccacfece25b",
"algorithm": "sha512",
"filename": "node-v4.4.5-linux-x64.tar.xz"
}
]
EOF
tar -C /usr/local --strip-components 1 -xJ < node-*.tar.xz
node -v # verify
npm -v
###
# Flake8 Setup
###
Bug 1247168 - Convert lint image and tasks to use robustcheckout; r=dustin The robustcheckout Mercurial extension does a clone+checkout optimally. Read the bug for more on it. robustcheckout is already used by mozharness automation. It has resulted in a significant reduction in I/O usage and utilization in automation. This commit replaces tc-vcs with the robustcheckout equivalent. We replace the existing tc-vcs scope and cache with a new one. Because Dustin and I are paranoid, we maintain separate caches per SCM level - even though we could arguably share the same cache. Defense in depth. Robustcheckout (when used with --sharebase) pools storage for related repos automatically. i.e. changesets from inbound and central will be in the same store. This means you likely only have one copy of each changeset per cache. This can result in significant space savings. And, since there are fewer copies floating around, hg.mozilla.org and various network appliances are working less too! Since tc-vcs is no longer used, we stop it from being installed. While we're here, we also change the images to execute as the "worker" user. This happens automatically as a result of using the "checkout-and-run" script. MozReview-Commit-ID: EDeebuP7TkT --HG-- extra : rebase_source : 2bec5dd9d6fe5565831bb35f195859aa12dd0bf2 extra : intermediate-source : 06481d97a485f6566554b087bc3880d76361e8ec extra : source : d368700c93ef085325a081219d7aeb8512bc54a1 extra : histedit_source : c07505273fc8f10acf8e8d3ee01e327afd0aa63d
2016-07-19 20:30:03 +00:00
cd /setup
pip install --require-hashes -r /tmp/flake8_requirements.txt
cd /
rm -rf /setup