зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1103031 - switch over to using base-test and base-build images r=lightsofapollo
--HG-- rename : testing/docker/base/Dockerfile => testing/docker/base-build/Dockerfile rename : testing/docker/base/system-setup.sh => testing/docker/base-build/system-setup.sh rename : testing/docker/base/Dockerfile => testing/docker/base-test/Dockerfile extra : rebase_source : b0f10136c2dfbffca3b4f77e16820b046f6edbe9 extra : source : 5fcc4a5663467e57bd5a36eef3a6669062886f97
This commit is contained in:
Родитель
76ec23f3a9
Коммит
0d8090dbad
|
@ -1,4 +1,4 @@
|
|||
FROM centos:centos7
|
||||
FROM centos:centos6
|
||||
MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
|
||||
|
||||
# Run system setup script
|
|
@ -0,0 +1 @@
|
|||
0.0.1
|
|
@ -46,18 +46,14 @@ yum install -y \
|
|||
gtk2-devel \
|
||||
libstdc++-static \
|
||||
libXt-devel \
|
||||
mercurial \
|
||||
mesa-libGL-devel \
|
||||
pulseaudio-libs-devel \
|
||||
wireless-tools-devel \
|
||||
yasm \
|
||||
python-devel \
|
||||
dbus-python \
|
||||
python-virtualenv \
|
||||
;
|
||||
|
||||
yum install -y \
|
||||
alsa-lib-devel \
|
||||
libcurl-devel \
|
||||
openssl-devel \
|
||||
dbus-devel \
|
||||
|
@ -65,21 +61,20 @@ yum install -y \
|
|||
GConf2-devel \
|
||||
iw \
|
||||
libnotify-devel \
|
||||
pulseaudio-libs-devel \
|
||||
libXt-devel \
|
||||
mercurial \
|
||||
unzip \
|
||||
uuid \
|
||||
xorg-x11-server-Xvfb \
|
||||
xorg-x11-server-utils \
|
||||
tar \
|
||||
tcl \
|
||||
tk \
|
||||
unzip \
|
||||
zip \
|
||||
;
|
||||
|
||||
# From Building B2G docs
|
||||
yum install -y \
|
||||
install \
|
||||
autoconf213 \
|
||||
bison \
|
||||
bzip2 \
|
||||
ccache \
|
||||
|
@ -87,13 +82,11 @@ yum install -y \
|
|||
flex \
|
||||
gawk \
|
||||
gcc-c++ \
|
||||
git \
|
||||
glibc-devel \
|
||||
glibc-static \
|
||||
libstdc++-static \
|
||||
libX11-devel \
|
||||
make \
|
||||
mesa-libGL-devel \
|
||||
ncurses-devel \
|
||||
patch \
|
||||
zlib-devel \
|
||||
|
@ -105,7 +98,6 @@ yum install -y \
|
|||
glibc-devel.i686 \
|
||||
libstdc++.i686 \
|
||||
libXrandr.i686 \
|
||||
zip \
|
||||
perl-Digest-SHA \
|
||||
wget \
|
||||
;
|
||||
|
@ -124,6 +116,26 @@ yum install -y \
|
|||
# puppetagain packages
|
||||
base_url="http://puppetagain.pub.build.mozilla.org/data/repos/yum/releng/public/CentOS/6/x86_64/"
|
||||
|
||||
# Install Python 2.7, pip, and virtualenv (needed for things like mach)
|
||||
rpm -ih $base_url/mozilla-python27-2.7.3-1.el6.x86_64.rpm
|
||||
export PATH="/tools/python27-mercurial/bin:/tools/python27/bin:$PATH"
|
||||
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
|
||||
tar -xvf setuptools-1.4.2.tar.gz
|
||||
cd setuptools-1.4.2 && python setup.py install
|
||||
cd - && rm -rf setuptools-1.4.2*
|
||||
curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python -
|
||||
pip install virtualenv
|
||||
|
||||
# Install more recent version of mercurial
|
||||
rpm -ih $base_url/mozilla-python27-mercurial-3.1.2-1.el6.x86_64.rpm
|
||||
|
||||
# Install more recent version of git and dependencies
|
||||
yum install -y \
|
||||
perl-DBI \
|
||||
subversion-perl \
|
||||
;
|
||||
rpm -ih $base_url/mozilla-git-1.7.9.4-3.el6.x86_64.rpm
|
||||
|
||||
# Install gcc to build gecko
|
||||
rpm -ih $base_url/gcc473_0moz1-4.7.3-0moz1.x86_64.rpm
|
||||
|
||||
|
@ -133,7 +145,7 @@ rpm -ih $base_url/gcc473_0moz1-4.7.3-0moz1.x86_64.rpm
|
|||
yum clean all
|
||||
|
||||
### Generate machine uuid file
|
||||
dbus-uuidgen --ensure=/etc/machine-id
|
||||
dbus-uuidgen --ensure=/var/lib/dbus/machine-id
|
||||
|
||||
# Remove the setup.sh setup, we don't really need this script anymore, deleting
|
||||
# it keeps the image as clean as possible.
|
|
@ -0,0 +1,19 @@
|
|||
FROM quay.io/mozilla/ubuntu:12.04
|
||||
MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
|
||||
|
||||
# Run system setup script
|
||||
ADD system-setup.sh /tmp/system-setup.sh
|
||||
RUN ["/tmp/system-setup.sh"]
|
||||
|
||||
# Set variable normally configured at login, by the shells parent process, these
|
||||
# are taken from GNU su manual
|
||||
ENV HOME /home/worker
|
||||
ENV SHELL /bin/bash
|
||||
ENV USER worker
|
||||
ENV LOGNAME worker
|
||||
|
||||
# Declare default working folder
|
||||
WORKDIR /home/worker
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
|
@ -0,0 +1 @@
|
|||
0.0.1
|
|
@ -0,0 +1,149 @@
|
|||
#!/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 apt-get. But it
|
||||
# really shouldn't do this, so let's forbid root access.
|
||||
useradd -d /home/worker -s /bin/bash -m worker;
|
||||
|
||||
### Install Useful Packages
|
||||
# First we update and upgrade to latest versions.
|
||||
apt-get update;
|
||||
apt-get upgrade -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.
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
sudo \
|
||||
nano \
|
||||
tar \
|
||||
;
|
||||
|
||||
# Then let's install all firefox build dependencies, this are extracted from
|
||||
# mozboot. See python/mozboot/bin/bootstrap.py in mozilla-central.
|
||||
apt-get install -y \
|
||||
autoconf2.13 \
|
||||
build-essential \
|
||||
ccache \
|
||||
libasound2-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libdbus-1-dev \
|
||||
libdbus-glib-1-dev \
|
||||
libgconf2-dev \
|
||||
libgstreamer0.10-dev \
|
||||
libgstreamer-plugins-base0.10-dev \
|
||||
libgtk2.0-dev \
|
||||
libiw-dev \
|
||||
libnotify-dev \
|
||||
libpulse-dev \
|
||||
libxt-dev \
|
||||
mercurial \
|
||||
git \
|
||||
mesa-common-dev \
|
||||
python-dev \
|
||||
unzip \
|
||||
uuid \
|
||||
yasm \
|
||||
xvfb \
|
||||
zip \
|
||||
software-properties-common \
|
||||
;
|
||||
|
||||
### Firefox Test Setup
|
||||
apt-get install -y \
|
||||
alsa-base \
|
||||
alsa-utils \
|
||||
bluez-alsa \
|
||||
bluez-alsa:i386 \
|
||||
bluez-cups \
|
||||
bluez-gstreamer \
|
||||
g++-multilib \
|
||||
gcc-multilib \
|
||||
gir1.2-gnomebluetooth-1.0 \
|
||||
gstreamer0.10-alsa \
|
||||
libasound2-plugins:i386 \
|
||||
libcanberra-pulse \
|
||||
libdrm-intel1:i386 \
|
||||
libdrm-nouveau1a:i386 \
|
||||
libdrm-radeon1:i386 \
|
||||
libdrm2:i386 \
|
||||
libexpat1:i386 \
|
||||
libgnome-bluetooth8 \
|
||||
libllvm2.9 \
|
||||
libllvm3.0:i386 \
|
||||
libncurses5:i386 \
|
||||
libpulse-mainloop-glib0:i386 \
|
||||
libpulsedsp:i386 \
|
||||
libsdl1.2debian:i386 \
|
||||
libsox-fmt-alsa \
|
||||
libx11-xcb1:i386 \
|
||||
libxcb-glx0:i386 \
|
||||
libxcb-glx0 \
|
||||
libxdamage1:i386 \
|
||||
libxfixes3:i386 \
|
||||
libxxf86vm1:i386 \
|
||||
libxxf86vm1 \
|
||||
llvm \
|
||||
llvm-2.9 \
|
||||
llvm-2.9-dev \
|
||||
llvm-2.9-runtime \
|
||||
llvm-dev \
|
||||
llvm-runtime \
|
||||
pulseaudio-module-bluetooth \
|
||||
pulseaudio-module-gconf \
|
||||
pulseaudio-module-X11 \
|
||||
pulseaudio \
|
||||
python-pip
|
||||
|
||||
# Install some utilities
|
||||
curl -sL https://deb.nodesource.com/setup | sudo bash -
|
||||
apt-get install -y \
|
||||
screen \
|
||||
vim \
|
||||
wget \
|
||||
curl \
|
||||
rlwrap \
|
||||
nodejs \
|
||||
;
|
||||
|
||||
# Mozilla-patched mesa libs required for many reftests -- see bug 975034
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libgl1-mesa-dri_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libgl1-mesa-dri_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libgl1-mesa-glx_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libgl1-mesa-glx_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libglapi-mesa_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libglapi-mesa_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
dpkg -i libgl1-mesa-dri_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
dpkg -i libgl1-mesa-dri_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
dpkg -i libglapi-mesa_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
dpkg -i libglapi-mesa_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
dpkg -i libgl1-mesa-glx_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
dpkg -i libgl1-mesa-glx_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
dpkg -i libglu1-mesa_8.0.4-0ubuntu0.6mozilla1_i386.deb
|
||||
dpkg -i libglu1-mesa_8.0.4-0ubuntu0.6mozilla1_amd64.deb
|
||||
|
||||
# Install releng package of nodejs that includes npm
|
||||
#wget http://puppetagain.pub.build.mozilla.org/data/repos/apt/releng/precise/pool/main/n/nodejs/nodejs_0.10.21-1chl1~precise1_amd64.deb
|
||||
#dpkg -i nodejs_0.10.21-1chl1~precise1_amd64.deb
|
||||
|
||||
### Clean up from setup
|
||||
# Remove cached .deb packages. Cached package takes up a lot of space and
|
||||
# distributing them to workers is wasteful.
|
||||
apt-get clean
|
||||
rm *.deb
|
||||
|
||||
# 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";
|
||||
|
||||
################################### setup.sh ###################################
|
|
@ -1 +0,0 @@
|
|||
0.0.5
|
|
@ -1,7 +1,9 @@
|
|||
FROM quay.io/mozilla/base:0.0.4
|
||||
FROM quay.io/mozilla/base-build:0.0.1
|
||||
MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
|
||||
|
||||
ENV PATH $PATH:/home/worker/bin/
|
||||
ENV PATH /tools/python27-mercurial/bin:/tools/python27/bin:/tools/tools/buildfarm/utils:$PATH:/home/worker/bin/
|
||||
ENV PYTHONPATH /tools/tools/lib/python:$PYTHONPATH
|
||||
|
||||
ENV TOOLTOOL_CACHE /home/worker/tools/tooltool-cache
|
||||
|
||||
# Add utilities and configuration
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.0.20
|
||||
0.0.21
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
############################### system-setup.sh ###############################
|
||||
|
||||
home="/home/worker"
|
||||
tools_dir="/tmp/tools"
|
||||
tools_dir="/tools/tools"
|
||||
|
||||
mkdir -p $home/bin
|
||||
mkdir -p $home/tools
|
||||
|
@ -15,26 +15,16 @@ curl https://storage.googleapis.com/git-repo-downloads/repo > $home/bin/repo
|
|||
chmod a+x $home/bin/repo
|
||||
|
||||
# Install build tools
|
||||
cd /tmp
|
||||
hg clone http://hg.mozilla.org/build/tools/
|
||||
hg clone http://hg.mozilla.org/build/tools/ $tools_dir
|
||||
cd $tools_dir
|
||||
python setup.py install
|
||||
|
||||
# Put gittool and hgtool in the PATH
|
||||
cp $tools_dir/buildfarm/utils/gittool.py $home/bin
|
||||
cp $tools_dir/buildfarm/utils/hgtool.py $home/bin
|
||||
chmod +x $home/bin/gittool.py
|
||||
chmod +x $home/bin/hgtool.py
|
||||
|
||||
# Initialize git (makes repo happy)
|
||||
git config --global user.email "docker@docker.com"
|
||||
git config --global user.name "docker"
|
||||
|
||||
cd $home
|
||||
|
||||
# cleanup
|
||||
rm -rf $tools_dir
|
||||
|
||||
# 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";
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
FROM quay.io/mozilla/base:0.0.5
|
||||
FROM quay.io/mozilla/base-test:0.0.1
|
||||
MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
|
||||
|
||||
# Add utilities and configuration
|
||||
COPY b2g-desktop-config.py /home/worker/b2g-desktop-config.py
|
||||
COPY test-setup.sh /tmp/test-setup.sh
|
||||
COPY dot-config /home/worker/.config
|
||||
COPY dot-pulse /home/worker/.pulse
|
||||
COPY emulator_automation_config.py /home/worker/emulator_automation_config.py
|
||||
COPY bin /home/worker/bin
|
||||
COPY mozharness_configs /home/worker/mozharness_configs
|
||||
ADD b2g-desktop-config.py /home/worker/b2g-desktop-config.py
|
||||
ADD test-setup.sh /tmp/test-setup.sh
|
||||
ADD dot-config /home/worker/.config
|
||||
ADD dot-pulse /home/worker/.pulse
|
||||
ADD bin /home/worker/bin
|
||||
ADD mozharness_configs /home/worker/mozharness_configs
|
||||
|
||||
# Run test setup script
|
||||
USER root
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.0.7
|
||||
0.0.8
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
# This is a template config file for b2g emulator unittest production.
|
||||
import os
|
||||
|
||||
config = {
|
||||
# mozharness options
|
||||
"application": "b2g",
|
||||
"busybox_url": "http://runtime-binaries.pvt.build.mozilla.org/tooltool/sha512/0748e900821820f1a42e2f1f3fa4d9002ef257c351b9e6b78e7de0ddd0202eace351f440372fbb1ae0b7e69e8361b036f6bd3362df99e67fc585082a311fc0df",
|
||||
"xre_url": "http://runtime-binaries.pvt.build.mozilla.org/tooltool/sha512/263f4e8796c25543f64ba36e53d5c4ab8ed4d4e919226037ac0988761d34791b038ce96a8ae434f0153f9c2061204086decdbff18bdced42f3849156ae4dc9a4",
|
||||
"tooltool_servers": ["http://runtime-binaries.pvt.build.mozilla.org/tooltool/"],
|
||||
|
||||
"exes": {
|
||||
'python': '/usr/bin/python',
|
||||
'tooltool.py': "mozharness/mozharness/mozilla/tooltool.py",
|
||||
},
|
||||
|
||||
"find_links": [
|
||||
"http://pypi.pvt.build.mozilla.org/pub",
|
||||
"http://pypi.pub.build.mozilla.org/pub",
|
||||
],
|
||||
"pip_index": False,
|
||||
|
||||
"buildbot_json_path": "buildprops.json",
|
||||
|
||||
"default_actions": [
|
||||
'clobber',
|
||||
'read-buildbot-config',
|
||||
'download-and-extract',
|
||||
'create-virtualenv',
|
||||
'install',
|
||||
'run-tests',
|
||||
],
|
||||
"download_symbols": "ondemand",
|
||||
"download_minidump_stackwalk": True,
|
||||
"default_blob_upload_servers": [
|
||||
"https://blobupload.elasticbeanstalk.com",
|
||||
],
|
||||
"blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
|
||||
|
||||
"run_file_names": {
|
||||
"jsreftest": "runreftestb2g.py",
|
||||
"mochitest": "runtestsb2g.py",
|
||||
"reftest": "runreftestb2g.py",
|
||||
"crashtest": "runreftestb2g.py",
|
||||
"xpcshell": "runtestsb2g.py"
|
||||
},
|
||||
# test harness options are located in the gecko tree
|
||||
"in_tree_config": "config/mozharness/b2g_emulator_config.py",
|
||||
"vcs_output_timeout": 1760,
|
||||
}
|
|
@ -1,47 +1,7 @@
|
|||
#!/bin/bash -ve
|
||||
|
||||
### Firefox Test Setup
|
||||
|
||||
yum install -y \
|
||||
alsa-utils \
|
||||
bluez-alsa \
|
||||
bluez-alsa.i686 \
|
||||
bluez-cups \
|
||||
curl \
|
||||
dbus-devel \
|
||||
dbus-glib-devel \
|
||||
GConf2-devel \
|
||||
iw \
|
||||
libcurl-devel \
|
||||
libdrm.i686 \
|
||||
libdrm-devel.i686 \
|
||||
libnotify-devel \
|
||||
libX11.i686 \
|
||||
libX11-devel \
|
||||
libxcb.i686 \
|
||||
libXdamage.i686 \
|
||||
libXfixes.i686 \
|
||||
libXxf86vm.i686 \
|
||||
llvm \
|
||||
llvm-devel \
|
||||
ncurses-devel \
|
||||
ncurses-devel.i686 \
|
||||
openssl-devel \
|
||||
pulseaudio-module-gconf \
|
||||
pulseaudio-module-x11 \
|
||||
pulseaudio \
|
||||
yasm \
|
||||
python-devel \
|
||||
python-pip \
|
||||
dbus-python \
|
||||
wget \
|
||||
;
|
||||
|
||||
# Remove cached packages. Cached package takes up a lot of space and
|
||||
# distributing them to workers is wasteful.
|
||||
yum clean all
|
||||
|
||||
mkdir Documents; mkdir Pictures; mkdir Music; mkdir Videos; mkdir artifacts
|
||||
pip install virtualenv;
|
||||
mkdir Documents; mkdir Pictures; mkdir Music; mkdir Videos;
|
||||
hg clone http://hg.mozilla.org/build/mozharness/
|
||||
echo 'Xvfb :0 -nolisten tcp -screen 0 1600x1200x24 &> /dev/null &' >> .bashrc
|
||||
chown -R worker:worker /home/worker/* /home/worker/.*
|
||||
|
|
|
@ -15,6 +15,7 @@ task:
|
|||
- 'docker-worker:cache:sources-mozilla-central'
|
||||
- 'docker-worker:cache:sources-gaia'
|
||||
- 'docker-worker:cache:build-b2g-desktop-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
|
|
|
@ -15,6 +15,7 @@ task:
|
|||
- 'docker-worker:cache:sources-mozilla-central'
|
||||
- 'docker-worker:cache:sources-gaia'
|
||||
- 'docker-worker:cache:build-b2g-desktop-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
|
|
|
@ -13,6 +13,7 @@ task:
|
|||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-emulator-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
|
|
|
@ -15,6 +15,7 @@ task:
|
|||
- 'docker-worker:cache:sources-mozilla-central'
|
||||
- 'docker-worker:cache:build-mulet-linux-objects'
|
||||
- 'docker-worker:cache:tooltool-cache'
|
||||
- 'docker-worker:image:{{#docker_image}}builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
|
|
Загрузка…
Ссылка в новой задаче