gecko-dev/testing/docker/lint/system-setup.sh
Gregory Szorc 5cab45c387 Bug 1247168 - Install Mercurial 3.8.4 in lint image; r=dustin
Like we do for the decision image, we install Mercurial 3.8.4 from deb
files hosted on tooltool. This provides more control and determinism
than installing via apt.

As part of this change, Mercurial is upgraded from whatever was hosted
in apt to 3.8.4.

Since the deb packages don't provide a global hgrc, we create one
ourselves. This is effectively copied from the decision image.

Most of the work is being done in a new, standalone
install-mercurial.sh script. This script is part of the
newly-established testing/docker/recipes directory. The intent of this
directory is to hold common files referenced by multiple images. Our
custom Dockerfile syntax to include files from outside the directory
with the Dockerfile is used to add these files to the build context.

MozReview-Commit-ID: K7gVm2Geihj

--HG--
extra : rebase_source : 6d1089ac34e43d399c7cf608d09eaaf405df00f7
extra : histedit_source : 656a4cea33ef913102b03238475461884c2749a0
2016-07-19 14:43:25 -07:00

79 lines
1.8 KiB
Bash

#!/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.
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
###
cd /setup
cat >requirements.txt <<'EOF'
flake8==2.5.4 \
--hash=sha256:fb5a67af4024622287a76abf6b7fe4fb3cfacf765a790976ce64f52c44c88e4a
mccabe==0.4.0 \
--hash=sha256:cbc2938f6c01061bc6d21d0c838c2489664755cb18676f0734d7617f4577d09e
pep8==1.7.0 \
--hash=sha256:4fc2e478addcf17016657dff30b2d8d611e8341fac19ccf2768802f6635d7b8a
pyflakes==1.2.3 \
--hash=sha256:e87bac26c62ea5b45067cc89e4a12f56e1483f1f2cda17e7c9b375b9fd2f40da
EOF
pip install --require-hashes -r requirements.txt
cd /
rm -rf /setup