summaryrefslogtreecommitdiffstats
path: root/testing/docker/base-build/system-setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'testing/docker/base-build/system-setup.sh')
-rwxr-xr-xtesting/docker/base-build/system-setup.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/docker/base-build/system-setup.sh b/testing/docker/base-build/system-setup.sh
new file mode 100755
index 000000000..c47c59591
--- /dev/null
+++ b/testing/docker/base-build/system-setup.sh
@@ -0,0 +1,46 @@
+#!/bin/bash -ve
+
+################################### setup.sh ###################################
+
+### Check that we are running as root
+test `whoami` == 'root';
+
+### Add worker user
+# Minimize the number of things which the build script can do, security-wise
+# it's not a problem to let the build script install things with yum. But it
+# really shouldn't do this, so let's forbid root access.
+useradd -d /home/worker -s /bin/bash -m worker;
+
+# Install extra package mirror
+yum install -y epel-release
+
+### Install Useful Packages
+# First we update and upgrade to latest versions.
+yum update -y
+
+# Let's install some goodies, ca-certificates is needed for https with hg.
+# sudo will be required anyway, but let's make it explicit. It nice to have
+# sudo around. We'll also install nano, this is pure bloat I know, but it's
+# useful a text editor.
+yum install -y \
+ ca-certificates \
+ sudo \
+ nano \
+ ;
+
+# Then let's install all firefox build dependencies, these are extracted from
+# mozboot. See python/mozboot/bin/bootstrap.py in mozilla-central.
+yum groupinstall -y \
+ "Development Tools" \
+ "Development Libraries" \
+ "GNOME Software Development"
+
+### Clean up from setup
+# Remove cached packages. Cached package takes up a lot of space and
+# distributing them to workers is wasteful.
+yum clean all
+
+# Remove the setup.sh setup, we don't really need this script anymore, deleting
+# it keeps the image as clean as possible.
+rm $0; echo "Deleted $0";
+