Build Servo

This commit is contained in:
Simon Sapin 2018-09-14 18:34:43 +02:00
parent e50662bd80
commit aba63d4651
3 changed files with 88 additions and 17 deletions

View file

@ -4,6 +4,18 @@ import os.path
from decisionlib import DecisionTask
# https://docs.taskcluster.net/docs/reference/workers/docker-worker/docs/caches
CARGO_CACHE_SCOPES = [
"docker-worker:cache:cargo-registry-cache",
"docker-worker:cache:cargo-git-cache",
]
CARGO_CACHE = {
"cargo-registry-cache": "/root/.cargo/registry",
"cargo-git-cache": "/root/.cargo/git",
}
def main():
decision = DecisionTask(
project_name="Taskcluster experimenfts for Servo", # Used in task names
@ -12,25 +24,26 @@ def main():
worker_type="servo-docker-worker",
)
decision.create_task_with_in_tree_dockerfile(
task_name="servo build task",
command="./servo-build-task.sh",
dockerfile=dockerfile("servo-x86_64-linux"),
max_run_time_minutes=60,
scopes=CARGO_CACHE_SCOPES,
cache=CARGO_CACHE,
)
build_task = decision.create_task_with_in_tree_dockerfile(
task_name="build task",
command="./build-task.sh",
dockerfile=dockerfile("servo-x86_64-linux"),
max_run_time_minutes=20,
scopes=CARGO_CACHE_SCOPES,
cache=CARGO_CACHE,
artifacts=[
("/repo/something-rust/executable.gz", "1 week"),
],
# https://docs.taskcluster.net/docs/reference/workers/docker-worker/docs/caches
scopes=[
"docker-worker:cache:cargo-registry-cache",
"docker-worker:cache:cargo-git-cache",
],
cache={
"cargo-registry-cache": "/root/.cargo/registry",
"cargo-git-cache": "/root/.cargo/git",
},
)
decision.create_task(

9
servo-build-task.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/sh
set -e
set -x
git clone https://github.com/servo/servo/
cd servo
git checkout 0a2c61da91e77102ae774075ec4126937a79f038
./mach build -d

View file

@ -1,13 +1,62 @@
FROM ubuntu:bionic-20180821
ENV \
#
# Use rustups 'cargo' and 'rustc'
PATH="/root/.cargo/bin:${PATH}" \
#
# SpiderMonkeys build system fails if $SHELL is unset
SHELL=/bin/dash \
#
# The 'tzdata' APT package waits for user input on install by default
# https://stackoverflow.com/questions/44331836/apt-get-install-tzdata-noninteractive
DEBIAN_FRONTEND=noninteractive
RUN apt-get update -q && apt-get install -qy --no-install-recommends \
git \
curl \
ca-certificates \
python2.7 \
g++ \
#
# Cloning the repository
git \
ca-certificates \
#
# Installing rustup
curl \
#
# Running mach
python2.7 \
python-virtualenv \
virtualenv \
#
# Multiple C/C++ dependencies built from source
g++ \
make \
cmake \
#
# ANGLE
xorg-dev \
#
# mozjs (SpiderMonkey)
autoconf2.13 \
#
# Bindgen (for SpiderMonkey bindings)
clang \
#
# gstreamer
libglib2.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
libgstreamer1.0-dev \
#
# OpenSSL
libssl1.0-dev \
#
# blurz
libdbus-1-dev \
#
# Skia
libglu1-mesa-dev \
libbz2-dev \
#
#
&& \
rm -rf /var/lib/apt/lists/* && \
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
ENV PATH="/root/.cargo/bin:${PATH}"