mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
Backed out changeset d15798b73b9e (bug 1302763) for taskcluster build issues a=backout CLOSED TREE
--HG-- rename : taskcluster/docker/README.md => testing/docker/README.md rename : taskcluster/docker/REGISTRY => testing/docker/REGISTRY rename : taskcluster/docker/android-gradle-build/README.md => testing/docker/android-gradle-build/README.md rename : taskcluster/docker/android-gradle-build/VERSION => testing/docker/android-gradle-build/VERSION rename : taskcluster/docker/android-gradle-build/bin/after.sh => testing/docker/android-gradle-build/bin/after.sh rename : taskcluster/docker/android-gradle-build/bin/before.sh => testing/docker/android-gradle-build/bin/before.sh rename : taskcluster/docker/android-gradle-build/bin/build.sh => testing/docker/android-gradle-build/bin/build.sh rename : taskcluster/docker/android-gradle-build/bin/checkout-sources.sh => testing/docker/android-gradle-build/bin/checkout-sources.sh rename : taskcluster/docker/base-build/Dockerfile => testing/docker/base-build/Dockerfile rename : taskcluster/docker/base-build/VERSION => testing/docker/base-build/VERSION rename : taskcluster/docker/base-build/system-setup.sh => testing/docker/base-build/system-setup.sh rename : taskcluster/docker/base-test/Dockerfile => testing/docker/base-test/Dockerfile rename : taskcluster/docker/base-test/VERSION => testing/docker/base-test/VERSION rename : taskcluster/docker/base-test/sources.list => testing/docker/base-test/sources.list rename : taskcluster/docker/centos6-build-upd/Dockerfile => testing/docker/centos6-build-upd/Dockerfile rename : taskcluster/docker/centos6-build-upd/VERSION => testing/docker/centos6-build-upd/VERSION rename : taskcluster/docker/centos6-build/Dockerfile => testing/docker/centos6-build/Dockerfile rename : taskcluster/docker/centos6-build/hgrc => testing/docker/centos6-build/hgrc rename : taskcluster/docker/centos6-build/system-setup.sh => testing/docker/centos6-build/system-setup.sh rename : taskcluster/docker/decision/README.md => testing/docker/decision/README.md rename : taskcluster/docker/decision/VERSION => testing/docker/decision/VERSION rename : taskcluster/docker/decision/system-setup.sh => testing/docker/decision/system-setup.sh rename : taskcluster/docker/desktop-build/bin/build.sh => testing/docker/desktop-build/bin/build.sh rename : taskcluster/docker/desktop-build/bin/checkout-script.sh => testing/docker/desktop-build/bin/checkout-script.sh rename : taskcluster/docker/desktop-build/bin/checkout-sources.sh => testing/docker/desktop-build/bin/checkout-sources.sh rename : taskcluster/docker/desktop-build/buildprops.json => testing/docker/desktop-build/buildprops.json rename : taskcluster/docker/desktop-build/oauth.txt => testing/docker/desktop-build/oauth.txt rename : taskcluster/docker/desktop1604-test/apport => testing/docker/desktop-test/apport rename : taskcluster/docker/desktop1604-test/buildprops.json => testing/docker/desktop-test/buildprops.json rename : taskcluster/docker/tester/dot-config/pip/pip.conf => testing/docker/desktop-test/dot-files/config/pip/pip.conf rename : taskcluster/docker/desktop1604-test/dot-files/config/user-dirs.dirs => testing/docker/desktop-test/dot-files/config/user-dirs.dirs rename : taskcluster/docker/desktop1604-test/jockey-gtk.desktop => testing/docker/desktop-test/jockey-gtk.desktop rename : taskcluster/docker/desktop1604-test/motd => testing/docker/desktop-test/motd rename : taskcluster/docker/desktop1604-test/release-upgrades => testing/docker/desktop-test/release-upgrades rename : taskcluster/docker/desktop-test/taskcluster-interactive-shell => testing/docker/desktop-test/taskcluster-interactive-shell rename : taskcluster/docker/desktop1604-test/bin/run-wizard => testing/docker/desktop1604-test/bin/run-wizard rename : taskcluster/docker/desktop1604-test/deja-dup-monitor.desktop => testing/docker/desktop1604-test/deja-dup-monitor.desktop rename : taskcluster/docker/desktop1604-test/fonts.conf => testing/docker/desktop1604-test/fonts.conf rename : taskcluster/docker/desktop1604-test/taskcluster-interactive-shell => testing/docker/desktop1604-test/taskcluster-interactive-shell rename : taskcluster/docker/tester/tc-vcs-config.yml => testing/docker/desktop1604-test/tc-vcs-config.yml rename : taskcluster/docker/image_builder/Dockerfile => testing/docker/image_builder/Dockerfile rename : taskcluster/docker/tester/REGISTRY => testing/docker/image_builder/REGISTRY rename : taskcluster/docker/image_builder/VERSION => testing/docker/image_builder/VERSION rename : taskcluster/docker/image_builder/bin/build_image.sh => testing/docker/image_builder/bin/build_image.sh rename : taskcluster/docker/lint/system-setup.sh => testing/docker/lint/system-setup.sh rename : taskcluster/docker/recipes/centos6-build-system-setup.sh => testing/docker/recipes/centos6-build-system-setup.sh rename : taskcluster/docker/recipes/common.sh => testing/docker/recipes/common.sh rename : taskcluster/docker/recipes/install-mercurial.sh => testing/docker/recipes/install-mercurial.sh rename : taskcluster/docker/recipes/run-task => testing/docker/recipes/run-task rename : taskcluster/docker/recipes/tooltool.py => testing/docker/recipes/tooltool.py rename : taskcluster/docker/recipes/ubuntu1204-test-system-setup.sh => testing/docker/recipes/ubuntu1204-test-system-setup.sh rename : taskcluster/docker/recipes/ubuntu1604-test-system-setup.sh => testing/docker/recipes/ubuntu1604-test-system-setup.sh rename : taskcluster/docker/recipes/xvfb.sh => testing/docker/recipes/xvfb.sh rename : taskcluster/docker/rust-build/Dockerfile => testing/docker/rust-build/Dockerfile rename : taskcluster/docker/rust-build/README.md => testing/docker/rust-build/README.md rename : taskcluster/docker/rust-build/REGISTRY => testing/docker/rust-build/REGISTRY rename : taskcluster/docker/rust-build/VERSION => testing/docker/rust-build/VERSION rename : taskcluster/docker/rust-build/build_cargo.sh => testing/docker/rust-build/build_cargo.sh rename : taskcluster/docker/rust-build/build_rust.sh => testing/docker/rust-build/build_rust.sh rename : taskcluster/docker/rust-build/build_rust_mac.sh => testing/docker/rust-build/build_rust_mac.sh rename : taskcluster/docker/rust-build/fetch_cargo.sh => testing/docker/rust-build/fetch_cargo.sh rename : taskcluster/docker/rust-build/fetch_rust.sh => testing/docker/rust-build/fetch_rust.sh rename : taskcluster/docker/rust-build/package_rust.sh => testing/docker/rust-build/package_rust.sh rename : taskcluster/docker/rust-build/repack_rust.py => testing/docker/rust-build/repack_rust.py rename : taskcluster/docker/rust-build/task.json => testing/docker/rust-build/task.json rename : taskcluster/docker/rust-build/tcbuild.py => testing/docker/rust-build/tcbuild.py rename : taskcluster/docker/rust-build/upload_rust.sh => testing/docker/rust-build/upload_rust.sh rename : taskcluster/docker/tester/Dockerfile => testing/docker/tester/Dockerfile rename : taskcluster/docker/tester/VERSION => testing/docker/tester/VERSION rename : taskcluster/docker/tester/bin/test.sh => testing/docker/tester/bin/test.sh rename : taskcluster/docker/tester/dot-config/user-dirs.dirs => testing/docker/tester/dot-config/user-dirs.dirs rename : taskcluster/docker/tester/dot-config/user-dirs.locale => testing/docker/tester/dot-config/user-dirs.locale rename : taskcluster/docker/tester/dot-pulse/default.pa => testing/docker/tester/dot-pulse/default.pa rename : taskcluster/docker/tester/tester.env => testing/docker/tester/tester.env
This commit is contained in:
parent
996d0996a0
commit
b879e5232a
1
AUTHORS
1
AUTHORS
@ -879,7 +879,6 @@ Ryan Flint <rflint@dslr.net>
|
||||
Ryan Jones <sciguyryan@gmail.com>
|
||||
Ryan VanderMeulen <ryanvm@gmail.com>
|
||||
Ryoichi Furukawa <oliver@1000cp.com>
|
||||
Sanyam Khurana <Sanyam.Khurana01@gmail.com>
|
||||
sagdjb@softwareag.com
|
||||
Samir Gehani <sgehani@netscape.com>
|
||||
Sammy Ford
|
||||
|
@ -63,7 +63,7 @@ jobs:
|
||||
when:
|
||||
files-changed:
|
||||
- "mobile/android/config/**"
|
||||
- "taskcluster/docker/android-gradle-build/**"
|
||||
- "testing/docker/android-gradle-build/**"
|
||||
- "testing/mozharness/configs/builds/releng_sub_android_configs/*gradle_dependencies.py"
|
||||
- "**/*.gradle"
|
||||
|
||||
|
@ -40,7 +40,7 @@ mozlint-eslint/opt:
|
||||
# Other misc lint related files.
|
||||
- 'python/mozlint/**'
|
||||
- 'tools/lint/**'
|
||||
- 'taskcluster/docker/lint/**'
|
||||
- 'testing/docker/lint/**'
|
||||
|
||||
mozlint-flake8/opt:
|
||||
description: flake8 run over the gecko codebase
|
||||
@ -66,7 +66,7 @@ mozlint-flake8/opt:
|
||||
- '**/.flake8'
|
||||
- 'python/mozlint/**'
|
||||
- 'tools/lint/**'
|
||||
- 'taskcluster/docker/lint/**'
|
||||
- 'testing/docker/lint/**'
|
||||
|
||||
wptlint-gecko/opt:
|
||||
description: web-platform-tests linter
|
||||
@ -94,4 +94,4 @@ wptlint-gecko/opt:
|
||||
- 'testing/web-platform/mozilla/meta/MANIFEST.json'
|
||||
- 'python/mozlint/**'
|
||||
- 'tools/lint/**'
|
||||
- 'taskcluster/docker/lint/**'
|
||||
- 'testing/docker/lint/**'
|
||||
|
@ -1,147 +0,0 @@
|
||||
FROM centos:centos6
|
||||
MAINTAINER Dustin J. Mitchell <dustin@mozilla.com>
|
||||
|
||||
# Run majority of yum installs here so we cache them!
|
||||
COPY releng.repo /etc/yum.repos.d/releng.repo
|
||||
RUN yum install -y epel-release && \
|
||||
yum update -y && \
|
||||
yum makecache && \
|
||||
yum install -y wget
|
||||
|
||||
# Install updated curl libraries
|
||||
RUN cd /tmp && \
|
||||
wget https://s3-us-west-2.amazonaws.com/test-caching/libcurl-7.29.0-19.el6.x86_64.rpm && \
|
||||
wget https://s3-us-west-2.amazonaws.com/test-caching/libcurl-devel-7.29.0-19.el6.x86_64.rpm && \
|
||||
wget https://s3-us-west-2.amazonaws.com/test-caching/curl-7.29.0-19.el6.x86_64.rpm && \
|
||||
yum install -y libcurl-7.29.0-19.el6.x86_64.rpm libcurl-devel-7.29.0-19.el6.x86_64.rpm curl-7.29.0-19.el6.x86_64.rpm && \
|
||||
rm -f libcurl-7.29.0-19.el6.x86_64.rpm libcurl-devel-7.29.0-19.el6.x86_64.rpm curl-7.29.0-19.el6.x86_64.rpm && \
|
||||
cd -
|
||||
|
||||
RUN yum install -y \
|
||||
# From Building B2G docs
|
||||
# cmake \
|
||||
# cmake: is disabled intentionally to work around: bug 1141417
|
||||
GConf2-devel \
|
||||
alsa-lib-devel \
|
||||
autoconf213 \
|
||||
bc \
|
||||
bison \
|
||||
bzip2 \
|
||||
ccache \
|
||||
dbus-devel \
|
||||
dbus-glib-devel \
|
||||
dbus-glib-devel \
|
||||
dbus-python \
|
||||
expat-devel \
|
||||
file \
|
||||
flex \
|
||||
gawk \
|
||||
gcc473_0moz1 \
|
||||
gettext-devel \
|
||||
glibc-devel \
|
||||
glibc-devel.i686 \
|
||||
glibc-static \
|
||||
gstreamer-devel \
|
||||
gstreamer-plugins-base-devel \
|
||||
gtk2-devel \
|
||||
install \
|
||||
iw \
|
||||
libX11-devel \
|
||||
libX11-devel.i686 \
|
||||
libXrandr.i686 \
|
||||
libXt-devel \
|
||||
libnotify-devel \
|
||||
libstdc++-static \
|
||||
libstdc++-static \
|
||||
libstdc++.i686 \
|
||||
make \
|
||||
mesa-libGL-devel \
|
||||
mesa-libGL-devel.i686 \
|
||||
mozilla-python27 \
|
||||
mpfr-devel.x86_64 \
|
||||
ncurses-devel.i686 \
|
||||
ncurses:-devel \
|
||||
openssh-clients \
|
||||
openssl-devel \
|
||||
openssl-devel \
|
||||
patch \
|
||||
perl-DBI \
|
||||
perl-Digest-SHA \
|
||||
perl-ExtUtils-MakeMaker \
|
||||
pulseaudio-libs-devel \
|
||||
readline-devel.i686 \
|
||||
rsync \
|
||||
screen \
|
||||
subversion-perl \
|
||||
tar \
|
||||
tcl \
|
||||
tk \
|
||||
unzip \
|
||||
uuid \
|
||||
vim \
|
||||
wireless-tools-devel \
|
||||
xorg-x11-server-Xvfb \
|
||||
xorg-x11-server-utils \
|
||||
xz \
|
||||
yasm \
|
||||
zip \
|
||||
zlib-devel \
|
||||
zlib-devel.i686 && \
|
||||
# Remove cached packages. Cached package takes up a lot of space and
|
||||
# distributing them to workers is wasteful.
|
||||
yum clean all
|
||||
|
||||
RUN mkdir -p /home/worker/bin
|
||||
COPY bin/repository-url.py /home/worker/bin/repository-url.py
|
||||
|
||||
ENV GCC_PATH /home/worker/workspace/gecko/gcc
|
||||
|
||||
# Default to mozilla specific python, etc...
|
||||
ENV PATH /tools/python27-mercurial/bin:/tools/python27/bin:$PATH
|
||||
ENV PATH /tools/tools/buildfarm/utils:$PATH:/home/worker/bin/
|
||||
ENV PATH $GCC_PATH/bin:/tools/gcc-4.7.3-0moz1/bin:$PATH
|
||||
|
||||
# Use the libstd++ we installed over all others...
|
||||
env LD_LIBRARY_PATH=$GCC_PATH/lib64:$GCC_PATH/lib:/tools/gcc-4.7.3-0moz1/lib64:/tools/gcc-4.7.3-0moz1/lib
|
||||
|
||||
RUN useradd -d /home/worker -s /bin/bash -m worker
|
||||
|
||||
# Terrible symlink hacks so cc points to the gcc version we intend to use...
|
||||
RUN ls -lah /tools/gcc-4.7.3-0moz1/bin && ln -s /tools/gcc-4.7.3-0moz1/bin/gcc /tools/gcc-4.7.3-0moz1/bin/cc
|
||||
|
||||
# Terrible Hack to correctly install git-2.4.1
|
||||
RUN mkdir -p /tmp/git && cd /tmp/git && \
|
||||
curl -L https://s3-us-west-2.amazonaws.com/test-caching/git-2.4.1.tar.gz | tar -xz && \
|
||||
cd git* && \
|
||||
make prefix=/usr/local/ all -j10 && \
|
||||
make prefix=/usr/local/ install && \
|
||||
rm -Rf /tmp/git
|
||||
|
||||
# Install node from node's own dist...
|
||||
ENV NODE_VERSION v0.10.36
|
||||
RUN cd /usr/local/ && \
|
||||
curl https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-x64.tar.gz | tar -xz --strip-components 1 && \
|
||||
node -v
|
||||
|
||||
RUN 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://bootstrap.pypa.io/get-pip.py | python - && \
|
||||
pip install virtualenv mercurial
|
||||
|
||||
# Generate machine uuid file
|
||||
RUN dbus-uuidgen --ensure=/var/lib/dbus/machine-id
|
||||
|
||||
# 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"]
|
@ -1 +0,0 @@
|
||||
0.2.11
|
@ -1,30 +0,0 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
import argparse
|
||||
|
||||
|
||||
def repo_url(remote, revision, path):
|
||||
'''
|
||||
Construct a url pointing to the _raw_ file in the given remote this function
|
||||
will handle url construction for both hg and github.
|
||||
'''
|
||||
|
||||
# Ensure remote always ends in a slash...
|
||||
if remote[-1] != '/':
|
||||
remote = remote + '/'
|
||||
if 'hg.mozilla.org' in remote:
|
||||
return '{}raw-file/{}/{}'.format(remote, revision, path)
|
||||
else:
|
||||
return '{}raw/{}/{}'.format(remote, revision, path)
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Get url for raw file in remote repository'
|
||||
)
|
||||
|
||||
parser.add_argument('remote', help='URL for remote repository')
|
||||
parser.add_argument('revision', help='Revision in remote repository')
|
||||
parser.add_argument('path', help='Path to file in remote repository')
|
||||
|
||||
args = parser.parse_args()
|
||||
print(repo_url(args.remote, args.revision, args.path))
|
@ -1,6 +0,0 @@
|
||||
[releng]
|
||||
name=releng
|
||||
descr=releng-specific packages from mockbuild-repos
|
||||
baseurl=http://mockbuild-repos.pub.build.mozilla.org/releng/public/CentOS/6/x86_64
|
||||
enabled=1
|
||||
gpgcheck=0
|
@ -1,32 +0,0 @@
|
||||
FROM quay.io/mozilla/b2g-build:0.2.11
|
||||
MAINTAINER Dustin J. Mitchell <dustin@mozilla.com>
|
||||
|
||||
ENV VERSION 1.2
|
||||
ENV PYTHONPATH /tools/tools/lib/python:$PYTHONPATH
|
||||
ENV TOOLTOOL_CACHE /home/worker/tools/tooltool-cache
|
||||
|
||||
ADD https://raw.githubusercontent.com/taskcluster/buildbot-step/19219c470bd95b390ed0b31d4bf455169bf12fca/buildbot_step.js /home/worker/bin/buildbot_step
|
||||
|
||||
# Add utilities and configuration
|
||||
RUN mkdir -p /home/worker/bin /home/worker/tools
|
||||
# Add bin tools last as they are most likely to change
|
||||
RUN chown -R worker:worker /home/worker/* /home/worker/.*
|
||||
|
||||
# Instal build tools
|
||||
RUN hg clone http://hg.mozilla.org/build/tools/ /tools/tools && \
|
||||
cd /tools/tools && \
|
||||
python setup.py install
|
||||
|
||||
# Initialize git (makes repo happy)
|
||||
RUN git config --global user.email "mozilla@example.com" && \
|
||||
git config --global user.name "mozilla"
|
||||
|
||||
# VCS Tools
|
||||
RUN npm install -g taskcluster-vcs@2.3.17
|
||||
|
||||
# TODO enable worker
|
||||
# TODO volume mount permissions will be an issue
|
||||
# USER worker
|
||||
|
||||
COPY bin /home/worker/bin
|
||||
RUN chmod a+x /home/worker/bin/*
|
@ -1 +0,0 @@
|
||||
0.5.13
|
@ -1,16 +0,0 @@
|
||||
#! /bin/bash -ex
|
||||
|
||||
# Ensure we have at least enough to check gecko out...
|
||||
test $GECKO_BASE_REPOSITORY
|
||||
|
||||
# Workspace to checkout gecko into...
|
||||
WORKSPACE=$1
|
||||
mkdir -p $WORKSPACE
|
||||
|
||||
# Note that tc-vcs requires only the first two arguments so others are optional.
|
||||
# This is intended to make it easier to clone local directories.
|
||||
buildbot_step "Clone gecko" tc-vcs checkout $WORKSPACE/gecko \
|
||||
$GECKO_BASE_REPOSITORY \
|
||||
$GECKO_HEAD_REPOSITORY \
|
||||
$GECKO_HEAD_REV \
|
||||
$GECKO_HEAD_REF
|
@ -1,6 +0,0 @@
|
||||
GECKO_BASE_REPOSITORY=https://github.com/mozilla/gecko-dev
|
||||
GECKO_HEAD_REPOSITORY=https://github.com/mozilla/gecko-dev
|
||||
GECKO_HEAD_REF=master
|
||||
GECKO_HEAD_REV=master
|
||||
MOZHARNESS_REPOSITORY=http://hg.mozilla.org/build/mozharness
|
||||
MOZHARNESS_REV=tip
|
@ -1,7 +0,0 @@
|
||||
GECKO_BASE_REPOSITORY=https://github.com/mozilla/gecko-dev
|
||||
GECKO_HEAD_REPOSITORY=https://github.com/mozilla/gecko-dev
|
||||
GECKO_HEAD_REF=master
|
||||
GECKO_HEAD_REV=master
|
||||
MOZHARNESS_REPOSITORY=http://hg.mozilla.org/build/mozharness
|
||||
MOZHARNESS_REV=tip
|
||||
MOZCONFIG=b2g/dev/config/mozconfigs/linux64/mulet
|
@ -1,25 +0,0 @@
|
||||
FROM ubuntu:16.04
|
||||
MAINTAINER Greg Arndt <garndt@mozilla.com>
|
||||
|
||||
# Add worker user
|
||||
RUN useradd -d /home/worker -s /bin/bash -m worker
|
||||
RUN mkdir /home/worker/artifacts && chown worker:worker /home/worker/artifacts
|
||||
|
||||
# %include taskcluster/docker/recipes/tooltool.py
|
||||
ADD topsrcdir/taskcluster/docker/recipes/tooltool.py /tmp/tooltool.py
|
||||
|
||||
# %include taskcluster/docker/recipes/install-mercurial.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /tmp/install-mercurial.sh
|
||||
|
||||
ADD system-setup.sh /tmp/system-setup.sh
|
||||
RUN bash /tmp/system-setup.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/run-task
|
||||
ADD topsrcdir/taskcluster/docker/recipes/run-task /home/worker/bin/run-task
|
||||
|
||||
ENV PATH /home/worker/bin:$PATH
|
||||
ENV SHELL /bin/bash
|
||||
ENV HOME /home/worker
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1,46 +0,0 @@
|
||||
# TODO remove VOLUME below when the base image is updated next.
|
||||
FROM taskcluster/centos6-build-upd:0.1.6.20160329195300
|
||||
MAINTAINER Dustin J. Mitchell <dustin@mozilla.com>
|
||||
|
||||
# TODO remove when base image is updated
|
||||
VOLUME /home/worker/workspace
|
||||
VOLUME /home/worker/tooltool-cache
|
||||
|
||||
# Add build scripts; these are the entry points from the taskcluster worker, and
|
||||
# operate on environment variables
|
||||
ADD bin /home/worker/bin
|
||||
RUN chmod +x /home/worker/bin/*
|
||||
|
||||
# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
|
||||
# %include taskcluster/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
|
||||
|
||||
# Add configuration
|
||||
COPY dot-config /home/worker/.config
|
||||
|
||||
# Generate machine uuid file
|
||||
RUN dbus-uuidgen --ensure=/var/lib/dbus/machine-id
|
||||
|
||||
# Stubbed out credentials; mozharness looks for this file an issues a WARNING
|
||||
# if it's not found, which causes the build to fail. Note that this needs to
|
||||
# be in the parent of the workspace directory and in the directory where
|
||||
# mozharness is run (not its --work-dir). See Bug 1169652.
|
||||
ADD oauth.txt /home/worker/
|
||||
|
||||
# stubbed out buildprops, which keeps mozharness from choking
|
||||
# Note that this needs to be in the parent of the workspace directory and in
|
||||
# the directory where mozharness is run (not its --work-dir)
|
||||
ADD buildprops.json /home/worker/
|
||||
|
||||
# install tooltool directly from github where tooltool_wrapper.sh et al. expect
|
||||
# to find it
|
||||
RUN wget -O /builds/tooltool.py https://raw.githubusercontent.com/mozilla/build-tooltool/master/tooltool.py
|
||||
RUN chmod +x /builds/tooltool.py
|
||||
|
||||
# Move installation to base centos6-build image once Bug 1272629 is fixed
|
||||
# Install the screen package here to use with xvfb.
|
||||
# Install bison to build binutils.
|
||||
RUN yum install -y bison screen
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1,2 +0,0 @@
|
||||
[global]
|
||||
disable-pip-version-check = true
|
@ -1,106 +0,0 @@
|
||||
FROM ubuntu:12.04
|
||||
MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
|
||||
|
||||
RUN useradd -d /home/worker -s /bin/bash -m worker
|
||||
WORKDIR /home/worker
|
||||
|
||||
# %include taskcluster/docker/recipes/tooltool.py
|
||||
ADD topsrcdir/taskcluster/docker/recipes/tooltool.py /setup/tooltool.py
|
||||
|
||||
# %include taskcluster/docker/recipes/install-mercurial.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /tmp/install-mercurial.sh
|
||||
|
||||
# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
|
||||
# %include taskcluster/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/ubuntu1204-test-system-setup.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/ubuntu1204-test-system-setup.sh /setup/system-setup.sh
|
||||
RUN bash /setup/system-setup.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/run-task
|
||||
ADD topsrcdir/taskcluster/docker/recipes/run-task /home/worker/bin/run-task
|
||||
|
||||
# %include taskcluster/scripts/tester/test-ubuntu.sh
|
||||
ADD topsrcdir/taskcluster/scripts/tester/test-ubuntu.sh /home/worker/bin/test-linux.sh
|
||||
|
||||
# This will create a host mounted filesystem when the cache is stripped
|
||||
# on Try. This cancels out some of the performance losses of aufs. See
|
||||
# bug 1291940.
|
||||
VOLUME /home/worker/hg-shared
|
||||
VOLUME /home/worker/checkouts
|
||||
VOLUME /home/worker/workspace
|
||||
|
||||
# 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
|
||||
ENV HOSTNAME taskcluster-worker
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
# Add utilities and configuration
|
||||
COPY dot-files/config /home/worker/.config
|
||||
COPY dot-files/pulse /home/worker/.pulse
|
||||
RUN chmod +x bin/*
|
||||
# TODO: remove this when buildbot is gone
|
||||
COPY buildprops.json /home/worker/buildprops.json
|
||||
COPY tc-vcs-config.yml /etc/taskcluster-vcs.yml
|
||||
|
||||
# TODO: remove
|
||||
ADD https://raw.githubusercontent.com/taskcluster/buildbot-step/master/buildbot_step /home/worker/bin/buildbot_step
|
||||
RUN chmod u+x /home/worker/bin/buildbot_step
|
||||
|
||||
# TODO: remove
|
||||
ADD https://s3-us-west-2.amazonaws.com/test-caching/packages/linux64-stackwalk /usr/local/bin/linux64-minidump_stackwalk
|
||||
RUN chmod +x /usr/local/bin/linux64-minidump_stackwalk
|
||||
|
||||
# allow the worker user to access video devices
|
||||
RUN usermod -a -G video worker
|
||||
|
||||
RUN mkdir Documents; mkdir Pictures; mkdir Music; mkdir Videos; mkdir artifacts
|
||||
|
||||
# install tc-vcs and tc-npm-cache
|
||||
RUN npm install -g taskcluster-vcs@2.3.12 \
|
||||
&& npm install -g taskcluster-npm-cache@1.1.14 \
|
||||
&& rm -rf ~/.npm
|
||||
ENV PATH $PATH:/home/worker/bin
|
||||
|
||||
# TODO Re-enable worker when bug 1093833 lands
|
||||
#USER worker
|
||||
|
||||
# clean up
|
||||
RUN rm -Rf .cache && mkdir -p .cache
|
||||
|
||||
# Disable Ubuntu update prompt
|
||||
# http://askubuntu.com/questions/515161/ubuntu-12-04-disable-release-notification-of-14-04-in-update-manager
|
||||
ADD release-upgrades /etc/update-manager/release-upgrades
|
||||
|
||||
# Disable tools with on-login popups that interfere with tests; see bug 1240084 and bug 984944.
|
||||
ADD jockey-gtk.desktop deja-dup-monitor.desktop /etc/xdg/autostart/
|
||||
|
||||
# In test.sh we accept START_VNC to start a vnc daemon.
|
||||
# Exposing this port allows it to work.
|
||||
EXPOSE 5900
|
||||
|
||||
# This helps not forgetting setting DISPLAY=:0 when running
|
||||
# tests outside of test.sh
|
||||
ENV DISPLAY :0
|
||||
|
||||
# Disable apport (Ubuntu app crash reporter) to avoid stealing focus from test runs
|
||||
ADD apport /etc/default/apport
|
||||
|
||||
# Disable font antialiasing for now to match releng's setup
|
||||
ADD fonts.conf /home/worker/.fonts.conf
|
||||
|
||||
# Set up first-run experience for interactive mode
|
||||
ADD motd /etc/taskcluster-motd
|
||||
ADD taskcluster-interactive-shell /bin/taskcluster-interactive-shell
|
||||
RUN chmod +x /bin/taskcluster-interactive-shell
|
||||
|
||||
RUN chown -R worker:worker /home/worker
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1,2 +0,0 @@
|
||||
[global]
|
||||
disable-pip-version-check = true
|
@ -1,108 +0,0 @@
|
||||
FROM ubuntu:16.04
|
||||
MAINTAINER Joel Maher <joel.maher@gmail.com>
|
||||
|
||||
RUN useradd -d /home/worker -s /bin/bash -m worker
|
||||
WORKDIR /home/worker
|
||||
|
||||
# %include taskcluster/docker/recipes/tooltool.py
|
||||
ADD topsrcdir/taskcluster/docker/recipes/tooltool.py /setup/tooltool.py
|
||||
|
||||
# %include taskcluster/docker/recipes/install-mercurial.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /setup/install-mercurial.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/ubuntu1604-test-system-setup.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/ubuntu1604-test-system-setup.sh /setup/system-setup.sh
|
||||
RUN bash /setup/system-setup.sh
|
||||
|
||||
# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
|
||||
# %include taskcluster/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/run-task
|
||||
ADD topsrcdir/taskcluster/docker/recipes/run-task /home/worker/bin/run-task
|
||||
|
||||
# %include taskcluster/scripts/tester/test-ubuntu.sh
|
||||
ADD topsrcdir/taskcluster/scripts/tester/test-ubuntu.sh /home/worker/bin/test-linux.sh
|
||||
|
||||
# This will create a host mounted filesystem when the cache is stripped
|
||||
# on Try. This cancels out some of the performance losses of aufs. See
|
||||
# bug 1291940.
|
||||
VOLUME /home/worker/hg-shared
|
||||
VOLUME /home/worker/checkouts
|
||||
VOLUME /home/worker/workspace
|
||||
|
||||
# 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
|
||||
ENV HOSTNAME taskcluster-worker
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
# Add utilities and configuration
|
||||
COPY dot-files/config /home/worker/.config
|
||||
COPY dot-files/pulse /home/worker/.pulse
|
||||
COPY bin /home/worker/bin
|
||||
RUN chmod +x bin/*
|
||||
# TODO: remove this when buildbot is gone
|
||||
COPY buildprops.json /home/worker/buildprops.json
|
||||
COPY tc-vcs-config.yml /etc/taskcluster-vcs.yml
|
||||
|
||||
# TODO: remove
|
||||
ADD https://raw.githubusercontent.com/taskcluster/buildbot-step/master/buildbot_step /home/worker/bin/buildbot_step
|
||||
RUN chmod u+x /home/worker/bin/buildbot_step
|
||||
|
||||
# TODO: remove
|
||||
ADD https://s3-us-west-2.amazonaws.com/test-caching/packages/linux64-stackwalk /usr/local/bin/linux64-minidump_stackwalk
|
||||
RUN chmod +x /usr/local/bin/linux64-minidump_stackwalk
|
||||
|
||||
# allow the worker user to access video devices
|
||||
RUN usermod -a -G video worker
|
||||
|
||||
RUN mkdir Documents; mkdir Pictures; mkdir Music; mkdir Videos; mkdir artifacts
|
||||
|
||||
# install a new enough npm, plus tc-vcs and tc-npm-cache
|
||||
RUN npm install -g npm@^2.0.0 \
|
||||
&& npm install -g taskcluster-vcs@2.3.12 \
|
||||
&& npm install -g taskcluster-npm-cache@1.1.14 \
|
||||
&& rm -rf ~/.npm
|
||||
ENV PATH $PATH:/home/worker/bin
|
||||
|
||||
# TODO Re-enable worker when bug 1093833 lands
|
||||
#USER worker
|
||||
|
||||
# clean up
|
||||
RUN rm -Rf .cache && mkdir -p .cache
|
||||
|
||||
# Disable Ubuntu update prompt
|
||||
# http://askubuntu.com/questions/515161/ubuntu-12-04-disable-release-notification-of-14-04-in-update-manager
|
||||
ADD release-upgrades /etc/update-manager/release-upgrades
|
||||
|
||||
# Disable tools with on-login popups that interfere with tests; see bug 1240084 and bug 984944.
|
||||
ADD jockey-gtk.desktop deja-dup-monitor.desktop /etc/xdg/autostart/
|
||||
|
||||
# In test.sh we accept START_VNC to start a vnc daemon.
|
||||
# Exposing this port allows it to work.
|
||||
EXPOSE 5900
|
||||
|
||||
# This helps not forgetting setting DISPLAY=:0 when running
|
||||
# tests outside of test.sh
|
||||
ENV DISPLAY :0
|
||||
|
||||
# Disable apport (Ubuntu app crash reporter) to avoid stealing focus from test runs
|
||||
ADD apport /etc/default/apport
|
||||
|
||||
# Disable font antialiasing for now to match releng's setup
|
||||
ADD fonts.conf /home/worker/.fonts.conf
|
||||
|
||||
# Set up first-run experience for interactive mode
|
||||
ADD motd /etc/taskcluster-motd
|
||||
ADD taskcluster-interactive-shell /bin/taskcluster-interactive-shell
|
||||
RUN chmod +x /bin/taskcluster-interactive-shell
|
||||
|
||||
RUN chown -R worker:worker /home/worker
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1,2 +0,0 @@
|
||||
[global]
|
||||
disable-pip-version-check = true
|
@ -1,31 +0,0 @@
|
||||
FROM ubuntu:16.04
|
||||
MAINTAINER Andrew Halberstadt <ahalberstadt@mozilla.com>
|
||||
|
||||
RUN useradd -d /home/worker -s /bin/bash -m worker
|
||||
WORKDIR /home/worker
|
||||
|
||||
RUN mkdir /build
|
||||
# %include taskcluster/docker/recipes/tooltool.py
|
||||
ADD topsrcdir/taskcluster/docker/recipes/tooltool.py /build/tooltool.py
|
||||
|
||||
# %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
|
||||
RUN bash /tmp/system-setup.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/run-task
|
||||
ADD topsrcdir/taskcluster/docker/recipes/run-task /home/worker/bin/run-task
|
||||
RUN chown -R worker:worker /home/worker/bin && chmod 755 /home/worker/bin/*
|
||||
|
||||
# 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
|
||||
ENV HOSTNAME taskcluster-worker
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1,17 +0,0 @@
|
||||
FROM taskcluster/builder:0.5.13
|
||||
MAINTAINER Wander Lairson Costa <wcosta@mozilla.com>
|
||||
|
||||
# Add utilities and configuration
|
||||
ADD bin /home/worker/bin
|
||||
|
||||
# Builds need the share module enabled
|
||||
ADD hgrc /home/worker/.hgrc
|
||||
RUN chown -R worker:worker /home/worker/.hgrc
|
||||
|
||||
# Make sure we use our own config
|
||||
COPY tc-vcs-config.yml /etc/taskcluster-vcs.yml
|
||||
|
||||
RUN yum install -y bc lzop java-1.7.0-openjdk
|
||||
RUN pip install awscli
|
||||
RUN npm install -g bower gulp apm grunt-cli
|
||||
|
@ -1,72 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import os.path
|
||||
import json
|
||||
import urllib2
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
repo_matcher = re.compile(r'[a-z]+://(hg|git)\.mozilla\.org')
|
||||
|
||||
|
||||
def get_task(taskid):
|
||||
return json.load(
|
||||
urllib2.urlopen('https://queue.taskcluster.net/v1/task/' + taskid))
|
||||
|
||||
|
||||
def check_task(task):
|
||||
payload = task['payload']
|
||||
|
||||
if 'GECKO_HEAD_REPOSITORY' not in payload['env']:
|
||||
print('Task has no head gecko repository', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
repo = payload['env']['GECKO_HEAD_REPOSITORY']
|
||||
# if it is not a mozilla repository, fail
|
||||
if not repo_matcher.match(repo):
|
||||
print('Invalid head repository', repo, file=sys.stderr)
|
||||
return -1
|
||||
|
||||
if 'GECKO_BASE_REPOSITORY' not in payload['env']:
|
||||
print('Task has no base gecko repository', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
repo = payload['env']['GECKO_BASE_REPOSITORY']
|
||||
if not repo_matcher.match(repo):
|
||||
print('Invalid base repository', repo, file=sys.stderr)
|
||||
return -1
|
||||
|
||||
locations = task["extra"]["locations"]
|
||||
if "img" in locations:
|
||||
img = locations["img"]
|
||||
if img.startswith("public"):
|
||||
print('Cannot upload images to public', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
def main():
|
||||
taskid = os.getenv('TASK_ID')
|
||||
|
||||
# If the task id is None, we assume we are running docker locally
|
||||
if taskid is not None:
|
||||
task = get_task(taskid)
|
||||
ret = check_task(task)
|
||||
if ret != 0:
|
||||
return ret
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
try:
|
||||
return subprocess.call(sys.argv[1:], shell=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
return e.returncode
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
@ -1,4 +0,0 @@
|
||||
[extensions]
|
||||
share =
|
||||
[ui]
|
||||
username = TaskCluster <nobody@mozilla.org>
|
@ -1,40 +0,0 @@
|
||||
# Default configuration used by the tc-vs tools these can be overridden by
|
||||
# passing the config you wish to use over the command line...
|
||||
git: git
|
||||
hg: hg
|
||||
|
||||
repoCache:
|
||||
# Repo url to clone when running repo init..
|
||||
repoUrl: https://gerrit.googlesource.com/git-repo.git
|
||||
# Version of repo to utilize...
|
||||
repoRevision: master
|
||||
# The root where all downloaded cache files are stored on the local machine...
|
||||
cacheDir: '{{env.HOME}}/.tc-vcs-repo/'
|
||||
# Name/prefixed used as part of the base url.
|
||||
cacheName: sources/{{name}}.tar.gz
|
||||
# Command used to upload the tarball
|
||||
uploadTar: "curl --retry 5 --fail --header 'Content-Type: application/x-tar' --header 'Content-Encoding: gzip' -X PUT --data-binary @'{{source}}' '{{url}}'"
|
||||
# Large http get requests are often slower using nodes built in http layer so
|
||||
# we utilize a subprocess which is responsible for fetching...
|
||||
get: curl --retry 5 --fail -L -o {{dest}} {{url}}
|
||||
# Used to create clone tarball
|
||||
compress: tar -czf {{dest}} {{source}}
|
||||
# All cache urls use tar + gz this is the command used to extract those files
|
||||
# downloaded by the "get" command.
|
||||
extract: tar -x -z -C {{dest}} -f {{source}}
|
||||
|
||||
cloneCache:
|
||||
# The root where all downloaded cache files are stored on the local machine...
|
||||
cacheDir: '{{env.HOME}}/.tc-vcs/'
|
||||
# Command used to upload the tarball
|
||||
uploadTar: "curl --retry 5 --fail --header 'Content-Type: application/x-tar' --header 'Content-Encoding: gzip' -X PUT --data-binary @'{{source}}' '{{url}}'"
|
||||
# Large http get requests are often slower using nodes built in http layer so
|
||||
# we utilize a subprocess which is responsible for fetching...
|
||||
get: curl --retry 5 --fail -L -o {{dest}} {{url}}
|
||||
# Used to create clone tarball
|
||||
compress: tar -czf {{dest}} {{source}}
|
||||
# All cache urls use tar + gz this is the command used to extract those files
|
||||
# downloaded by the "get" command.
|
||||
extract: tar -x -z --strip-components 1 -C {{dest}} -f {{source}}
|
||||
# Name/prefixed used as part of the base url.
|
||||
cacheName: clones/{{name}}.tar.gz
|
@ -1,50 +0,0 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G Emulator
|
||||
description: B2G Emulator
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-emulator-objects'
|
||||
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
|
||||
|
||||
image: 'quay.io/mozilla/phone-builder:0.0.1'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'private/build/emulator.tar.gz'
|
||||
tests: 'private/build/b2g-tests.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -1,50 +0,0 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G Emulator
|
||||
description: B2G Emulator
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-emulator-objects'
|
||||
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
|
||||
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: 'quay.io/mozilla/phone-builder:0.0.1'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'private/build/emulator.tar.gz'
|
||||
tests: 'private/build/b2g-tests.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -1,50 +0,0 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G Emulator
|
||||
description: B2G Emulator
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-emulator-objects'
|
||||
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: 'quay.io/mozilla/phone-builder:0.0.1'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
|
||||
artifacts:
|
||||
'public/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'public/build/emulator.tar.gz'
|
||||
tests: 'public/build/b2g-tests.zip'
|
||||
symbols: 'public/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'public/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -1,35 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
from validate_task import check_task
|
||||
sys.path.append('../bin')
|
||||
|
||||
|
||||
def load_task(task_file):
|
||||
content = open(task_file, 'r')
|
||||
return yaml.load(content)['task']
|
||||
|
||||
|
||||
class TaskValidationTest(unittest.TestCase):
|
||||
def test_valid_task(self):
|
||||
task = load_task('valid.yml')
|
||||
self.assertEquals(check_task(task), 0)
|
||||
|
||||
def test_invalid_base_repo(self):
|
||||
task = load_task('invalid_base_repo.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
|
||||
def test_invalid_head_repo(self):
|
||||
task = load_task('invalid_head_repo.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
|
||||
def test_public_artifact(self):
|
||||
task = load_task('public.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -1,53 +0,0 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G flame-kk opt
|
||||
description: B2G flame-kk opt
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-phone-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-phone-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: '{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
expires:
|
||||
relative-datestamp: '1 year'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'private/build/b2g-android-arm.tar.gz'
|
||||
img: 'private/build/flame-kk.zip'
|
||||
tests: 'private/build/gaia.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -1,190 +0,0 @@
|
||||
#!/bin/env python
|
||||
'''
|
||||
This script downloads and repacks official rust language builds
|
||||
with the necessary tool and target support for the Firefox
|
||||
build environment.
|
||||
'''
|
||||
|
||||
import os.path
|
||||
import requests
|
||||
import subprocess
|
||||
import toml
|
||||
|
||||
|
||||
def fetch_file(url):
|
||||
'''Download a file from the given url if it's not already present.'''
|
||||
filename = os.path.basename(url)
|
||||
if os.path.exists(filename):
|
||||
return
|
||||
r = requests.get(url, stream=True)
|
||||
r.raise_for_status()
|
||||
with open(filename, 'wb') as fd:
|
||||
for chunk in r.iter_content(4096):
|
||||
fd.write(chunk)
|
||||
|
||||
|
||||
def fetch(url):
|
||||
'''Download and verify a package url.'''
|
||||
base = os.path.basename(url)
|
||||
print('Fetching %s...' % base)
|
||||
fetch_file(url + '.asc')
|
||||
fetch_file(url)
|
||||
fetch_file(url + '.sha256')
|
||||
fetch_file(url + '.asc.sha256')
|
||||
print('Verifying %s...' % base)
|
||||
subprocess.check_call(['shasum', '-c', base + '.sha256'])
|
||||
subprocess.check_call(['shasum', '-c', base + '.asc.sha256'])
|
||||
subprocess.check_call(['gpg', '--verify', base + '.asc', base])
|
||||
subprocess.check_call(['keybase', 'pgp', 'verify',
|
||||
'-d', base + '.asc',
|
||||
'-i', base,
|
||||
])
|
||||
|
||||
|
||||
def install(filename, target):
|
||||
'''Run a package's installer script against the given target directory.'''
|
||||
print(' Unpacking %s...' % filename)
|
||||
subprocess.check_call(['tar', 'xf', filename])
|
||||
basename = filename.split('.tar')[0]
|
||||
print(' Installing %s...' % basename)
|
||||
install_cmd = [os.path.join(basename, 'install.sh')]
|
||||
install_cmd += ['--prefix=' + os.path.abspath(target)]
|
||||
install_cmd += ['--disable-ldconfig']
|
||||
subprocess.check_call(install_cmd)
|
||||
print(' Cleaning %s...' % basename)
|
||||
subprocess.check_call(['rm', '-rf', basename])
|
||||
|
||||
|
||||
def package(manifest, pkg, target):
|
||||
'''Pull out the package dict for a particular package and target
|
||||
from the given manifest.'''
|
||||
version = manifest['pkg'][pkg]['version']
|
||||
info = manifest['pkg'][pkg]['target'][target]
|
||||
return (version, info)
|
||||
|
||||
|
||||
def fetch_package(manifest, pkg, host):
|
||||
version, info = package(manifest, pkg, host)
|
||||
print('%s %s\n %s\n %s' % (pkg, version, info['url'], info['hash']))
|
||||
if not info['available']:
|
||||
print('%s marked unavailable for %s' % (pkg, host))
|
||||
raise AssertionError
|
||||
fetch(info['url'])
|
||||
return info
|
||||
|
||||
|
||||
def fetch_std(manifest, targets):
|
||||
stds = []
|
||||
for target in targets:
|
||||
info = fetch_package(manifest, 'rust-std', target)
|
||||
stds.append(info)
|
||||
return stds
|
||||
|
||||
|
||||
def tar_for_host(host):
|
||||
if 'linux' in host:
|
||||
tar_options = 'cJf'
|
||||
tar_ext = '.tar.xz'
|
||||
else:
|
||||
tar_options = 'cjf'
|
||||
tar_ext = '.tar.bz2'
|
||||
return tar_options, tar_ext
|
||||
|
||||
|
||||
def repack(host, targets, channel='stable', suffix=''):
|
||||
print("Repacking rust for %s..." % host)
|
||||
url = 'https://static.rust-lang.org/dist/channel-rust-' + channel + '.toml'
|
||||
req = requests.get(url)
|
||||
req.raise_for_status()
|
||||
manifest = toml.loads(req.content)
|
||||
if manifest['manifest-version'] != '2':
|
||||
print('ERROR: unrecognized manifest version %s.' % manifest[
|
||||
'manifest-version'])
|
||||
return
|
||||
print('Using manifest for rust %s as of %s.' % (channel, manifest['date']))
|
||||
print('Fetching packages...')
|
||||
rustc = fetch_package(manifest, 'rustc', host)
|
||||
cargo = fetch_package(manifest, 'cargo', host)
|
||||
stds = fetch_std(manifest, targets)
|
||||
print('Installing packages...')
|
||||
tar_basename = 'rustc-' + host
|
||||
if suffix:
|
||||
tar_basename += '-' + suffix
|
||||
tar_basename += '-repack'
|
||||
install_dir = 'rustc'
|
||||
subprocess.check_call(['rm', '-rf', install_dir])
|
||||
install(os.path.basename(rustc['url']), install_dir)
|
||||
install(os.path.basename(cargo['url']), install_dir)
|
||||
for std in stds:
|
||||
install(os.path.basename(std['url']), install_dir)
|
||||
pass
|
||||
print('Tarring %s...' % tar_basename)
|
||||
tar_options, tar_ext = tar_for_host(host)
|
||||
subprocess.check_call(
|
||||
['tar', tar_options, tar_basename + tar_ext, install_dir])
|
||||
subprocess.check_call(['rm', '-rf', install_dir])
|
||||
|
||||
|
||||
def repack_cargo(host, channel='nightly'):
|
||||
print("Repacking cargo for %s..." % host)
|
||||
# Cargo doesn't seem to have a .toml manifest.
|
||||
base_url = 'https://static.rust-lang.org/cargo-dist/'
|
||||
req = requests.get(os.path.join(base_url, 'channel-cargo-' + channel))
|
||||
req.raise_for_status()
|
||||
file = ''
|
||||
for line in req.iter_lines():
|
||||
if line.find(host) != -1:
|
||||
file = line.strip()
|
||||
if not file:
|
||||
print('No manifest entry for %s!' % host)
|
||||
return
|
||||
manifest = {
|
||||
'date': req.headers['Last-Modified'],
|
||||
'pkg': {
|
||||
'cargo': {
|
||||
'version': channel,
|
||||
'target': {
|
||||
host: {
|
||||
'url': os.path.join(base_url, file),
|
||||
'hash': None,
|
||||
'available': True,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
print('Using manifest for cargo %s.' % channel)
|
||||
print('Fetching packages...')
|
||||
cargo = fetch_package(manifest, 'cargo', host)
|
||||
print('Installing packages...')
|
||||
install_dir = 'cargo'
|
||||
subprocess.check_call(['rm', '-rf', install_dir])
|
||||
install(os.path.basename(cargo['url']), install_dir)
|
||||
tar_basename = 'cargo-%s-repack' % host
|
||||
print('Tarring %s...' % tar_basename)
|
||||
tar_options, tar_ext = tar_for_host(host)
|
||||
subprocess.check_call(
|
||||
['tar', tar_options, tar_basename + tar_ext, install_dir])
|
||||
subprocess.check_call(['rm', '-rf', install_dir])
|
||||
|
||||
|
||||
# rust platform triples
|
||||
android = "armv7-linux-androideabi"
|
||||
linux64 = "x86_64-unknown-linux-gnu"
|
||||
linux32 = "i686-unknown-linux-gnu"
|
||||
mac64 = "x86_64-apple-darwin"
|
||||
mac32 = "i686-apple-darwin"
|
||||
win64 = "x86_64-pc-windows-msvc"
|
||||
win32 = "i686-pc-windows-msvc"
|
||||
|
||||
if __name__ == '__main__':
|
||||
repack(mac64, [mac64, mac32])
|
||||
repack(win32, [win32])
|
||||
repack(win64, [win64])
|
||||
repack(linux64, [linux64, linux32])
|
||||
repack(linux64, [linux64, mac64, mac32], suffix='mac-cross')
|
||||
repack(linux64, [linux64, android], suffix='android-cross')
|
||||
repack_cargo(mac64)
|
||||
repack_cargo(win32)
|
||||
repack_cargo(win64)
|
||||
repack_cargo(linux64)
|
@ -1 +0,0 @@
|
||||
taskcluster
|
@ -1,2 +0,0 @@
|
||||
[global]
|
||||
disable-pip-version-check = true
|
@ -62,7 +62,7 @@ class DockerImageTask(base.Task):
|
||||
tasks = []
|
||||
templates = Templates(path)
|
||||
for image_name in config['images']:
|
||||
context_path = os.path.join('taskcluster', 'docker', image_name)
|
||||
context_path = os.path.join('testing', 'docker', image_name)
|
||||
|
||||
image_parameters = dict(parameters)
|
||||
image_parameters['context_path'] = context_path
|
||||
|
@ -151,7 +151,7 @@ task_description_schema = Schema({
|
||||
Required('docker-image'): Any(
|
||||
# a raw Docker image path (repo/image:tag)
|
||||
basestring,
|
||||
# an in-tree generated docker image (from `taskcluster/docker/<name>`)
|
||||
# an in-tree generated docker image (from `testing/docker/<name>`)
|
||||
{'in-tree': basestring}
|
||||
),
|
||||
|
||||
|
@ -119,7 +119,7 @@ test_description_schema = Schema({
|
||||
Required('docker-image', default={'in-tree': 'desktop-test'}): Any(
|
||||
# a raw Docker image path (repo/image:tag)
|
||||
basestring,
|
||||
# an in-tree generated docker image (from `taskcluster/docker/<name>`)
|
||||
# an in-tree generated docker image (from `testing/docker/<name>`)
|
||||
{'in-tree': basestring}
|
||||
),
|
||||
|
||||
|
@ -17,7 +17,7 @@ from mozpack.archive import (
|
||||
|
||||
|
||||
GECKO = os.path.realpath(os.path.join(__file__, '..', '..', '..', '..'))
|
||||
DOCKER_ROOT = os.path.join(GECKO, 'taskcluster', 'docker')
|
||||
DOCKER_ROOT = os.path.join(GECKO, 'testing', 'docker')
|
||||
ARTIFACT_URL = 'https://queue.taskcluster.net/v1/task/{}/artifacts/{}'
|
||||
|
||||
|
||||
|
@ -14,8 +14,8 @@ ADD bin /home/worker/bin
|
||||
RUN chmod +x /home/worker/bin/*
|
||||
|
||||
# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
|
||||
# %include taskcluster/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
|
||||
# %include testing/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/testing/docker/recipes/xvfb.sh /home/worker/scripts/xvfb.sh
|
||||
|
||||
# Add configuration
|
||||
COPY dot-config /home/worker/.config
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user