Skip to content

Commit 052768c

Browse files
Add webrender
1 parent b3f9a18 commit 052768c

File tree

788 files changed

+95269
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

788 files changed

+95269
-0
lines changed
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
target/
2+
*~
3+
*#
4+
5+
# WR internals
6+
captures
7+
wrench/json_frames
8+
wrench/ron_frames
9+
10+
# Editors
11+
*.swp
12+
*.swo
13+
14+
# IntelliJ
15+
.idea
16+
*.iws
17+
*.iml
18+
19+
#Gradle
20+
.gradle
21+
22+
# VSCode
23+
.vscode
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
# This file specifies the configuration needed to test WebRender using the
2+
# Taskcluster infrastructure. Most of this should be relatively self-explanatory;
3+
# this file was originally generated by using the Taskcluster-GitHub integration
4+
# quickstart tool at https://tools.taskcluster.net/quickstart/ and then expanded
5+
# as needed.
6+
#
7+
version: 0
8+
allowPullRequests: public
9+
metadata:
10+
name: WebRender
11+
description: Runs WebRender tests in TaskCluster
12+
owner: '{{ event.head.user.email }}'
13+
source: '{{ event.head.repo.url }}'
14+
15+
# This file triggers a set of tasks; the ones targeting Linux are run in a docker
16+
# container using docker-worker (which is a worker type provided by TaskCluster).
17+
# The OS X ones are run in a custom worker type, for which we have worker
18+
# instances configured and running.
19+
tasks:
20+
# For the docker-worker tasks, the Docker image used
21+
# (staktrace/webrender-test:freetype28) was created using this Dockerfile:
22+
# ---
23+
# FROM ubuntu:16.04
24+
# RUN apt-get -y update && apt-get install -y curl git python python-pip cmake pkg-config libx11-dev libgl1-mesa-dev libfontconfig1-dev software-properties-common
25+
# RUN add-apt-repository -y -u ppa:glasen/freetype2
26+
# RUN apt-get -y install freetype2-demos
27+
# RUN pip install mako voluptuous PyYAML servo-tidy
28+
# RUN useradd -d /home/worker -s /bin/bash -m worker
29+
# USER worker
30+
# WORKDIR /home/worker
31+
# ENV PATH $PATH:/home/worker/.cargo/bin
32+
# CMD /bin/bash
33+
# ---
34+
#
35+
# The docker image may need to be updated over time if the set of required
36+
# packages increases. Note in particular that rust/cargo are not part of the
37+
# docker image, and are re-installed using rustup on each CI run. This ensures
38+
# the latest stable rust compiler is always used.
39+
# CI runs will be triggered on opening PRs, updating PRs, and pushes to the
40+
# repository.
41+
- metadata:
42+
name: Linux release tests
43+
description: Runs release-mode WebRender CI stuff on a Linux TC worker
44+
owner: '{{ event.head.user.email }}'
45+
source: '{{ event.head.repo.url }}'
46+
provisionerId: '{{ taskcluster.docker.provisionerId }}'
47+
workerType: '{{ taskcluster.docker.workerType }}'
48+
extra:
49+
github:
50+
events:
51+
- pull_request.opened
52+
- pull_request.synchronize
53+
- push
54+
excludeBranches:
55+
- master
56+
payload:
57+
maxRunTime: 3600
58+
image: 'staktrace/webrender-test:freetype28'
59+
env:
60+
RUST_BACKTRACE: 1
61+
RUSTFLAGS: '--deny warnings'
62+
command:
63+
- /bin/bash
64+
- '--login'
65+
- '-c'
66+
- >-
67+
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
68+
git clone {{event.head.repo.url}} webrender && cd webrender &&
69+
git checkout {{event.head.sha}} &&
70+
servo-tidy &&
71+
(cd wrench && python script/headless.py reftest) &&
72+
(cd wrench && python script/headless.py rawtest) &&
73+
(cd wrench && cargo build --release)
74+
routes:
75+
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.linux-release"
76+
- metadata:
77+
name: Linux debug tests
78+
description: Runs debug-mode WebRender CI stuff on a Linux TC worker
79+
owner: '{{ event.head.user.email }}'
80+
source: '{{ event.head.repo.url }}'
81+
provisionerId: '{{ taskcluster.docker.provisionerId }}'
82+
workerType: '{{ taskcluster.docker.workerType }}'
83+
extra:
84+
github:
85+
events:
86+
- pull_request.opened
87+
- pull_request.synchronize
88+
- push
89+
excludeBranches:
90+
- master
91+
payload:
92+
maxRunTime: 3600
93+
image: 'staktrace/webrender-test:freetype28'
94+
env:
95+
RUST_BACKTRACE: 1
96+
RUSTFLAGS: '--deny warnings'
97+
command:
98+
- /bin/bash
99+
- '--login'
100+
- '-c'
101+
- >-
102+
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
103+
git clone {{event.head.repo.url}} webrender && cd webrender &&
104+
git checkout {{event.head.sha}} &&
105+
servo-tidy &&
106+
(cd webrender_api && cargo test --verbose --features "ipc") &&
107+
(cd webrender && cargo build --verbose --no-default-features) &&
108+
(cd webrender && cargo build --verbose --no-default-features --features capture) &&
109+
(cd webrender && cargo build --verbose --features capture,profiler) &&
110+
(cd webrender && cargo build --verbose --features replay) &&
111+
(cd wrench && cargo build --verbose --features env_logger) &&
112+
(cargo test --all --verbose)
113+
routes:
114+
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.linux-debug"
115+
# For the OS X jobs we use a pool of machines that we are managing, because
116+
# Mozilla releng doesn't have any spare OS X machines for us at this time.
117+
# Talk to :kats or :jrmuizel if you need more details about this. The machines
118+
# are hooked up to taskcluster using taskcluster-worker; they use a worker-type
119+
# of kats-webrender-ci-osx. They are set up with all the dependencies needed
120+
# to build and test webrender, including Rust (currently 1.24), servo-tidy,
121+
# mako, zlib, etc. Note that unlike the docker-worker used for Linux, these
122+
# machines WILL persist state from one run to the next, so any cleanup needs
123+
# to be handled explicitly.
124+
- metadata:
125+
name: OS X release tests
126+
description: Runs release-mode WebRender CI stuff on a OS X TC worker
127+
owner: '{{ event.head.user.email }}'
128+
source: '{{ event.head.repo.url }}'
129+
provisionerId: 'localprovisioner'
130+
workerType: 'kats-webrender-ci-osx'
131+
extra:
132+
github:
133+
events:
134+
- pull_request.opened
135+
- pull_request.synchronize
136+
- push
137+
excludeBranches:
138+
- master
139+
payload:
140+
maxRunTime: 3600
141+
command:
142+
- /bin/bash
143+
- '--login'
144+
- '-c'
145+
- >-
146+
rm -rf webrender &&
147+
git clone {{event.head.repo.url}} webrender && cd webrender &&
148+
git checkout {{event.head.sha}} &&
149+
source ../servotidy-venv/bin/activate && servo-tidy &&
150+
export RUST_BACKTRACE=1 &&
151+
export RUSTFLAGS='--deny warnings' &&
152+
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH" &&
153+
export RUSTC_WRAPPER=sccache &&
154+
(cd wrench && python script/headless.py reftest) &&
155+
(cd wrench && cargo build --release)
156+
routes:
157+
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-release"
158+
- metadata:
159+
name: OS X debug tests
160+
description: Runs debug-mode WebRender CI stuff on a OS X TC worker
161+
owner: '{{ event.head.user.email }}'
162+
source: '{{ event.head.repo.url }}'
163+
provisionerId: 'localprovisioner'
164+
workerType: 'kats-webrender-ci-osx'
165+
extra:
166+
github:
167+
events:
168+
- pull_request.opened
169+
- pull_request.synchronize
170+
- push
171+
excludeBranches:
172+
- master
173+
payload:
174+
maxRunTime: 3600
175+
command:
176+
- /bin/bash
177+
- '--login'
178+
- '-c'
179+
- >-
180+
rm -rf webrender &&
181+
git clone {{event.head.repo.url}} webrender && cd webrender &&
182+
git checkout {{event.head.sha}} &&
183+
source ../servotidy-venv/bin/activate && servo-tidy &&
184+
export RUST_BACKTRACE=1 &&
185+
export RUSTFLAGS='--deny warnings' &&
186+
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH" &&
187+
export RUSTC_WRAPPER=sccache &&
188+
(cd webrender_api && cargo test --verbose --features "ipc") &&
189+
(cd webrender && cargo check --verbose --no-default-features) &&
190+
(cd webrender && cargo check --verbose --no-default-features --features capture) &&
191+
(cd webrender && cargo check --verbose --features capture,profiler) &&
192+
(cd webrender && cargo check --verbose --features replay) &&
193+
(cd webrender && cargo check --verbose --no-default-features --features pathfinder) &&
194+
(cd wrench && cargo check --verbose --features env_logger) &&
195+
(cargo test --all --verbose)
196+
routes:
197+
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-debug"
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
dist: trusty
2+
language: rust
3+
rust:
4+
- 1.23.0
5+
- nightly
6+
matrix:
7+
fast_finish: true
8+
allow_failures:
9+
- rust: nightly
10+
os:
11+
- linux
12+
# - osx
13+
14+
# Travis is slow and often backlogged so we only run it on the "auto" branch
15+
# which is what bors uses to test the merge commit when merging a PR. Individual
16+
# PRs can catch errors by checking the taskcluster result instead.
17+
branches:
18+
only:
19+
- auto
20+
notifications:
21+
webhooks: http://build.servo.org:54856/travis
22+
23+
addons:
24+
apt:
25+
sources:
26+
- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main'
27+
keyurl: 'http://apt.llvm.org/llvm-snapshot.gpg.key'
28+
- sourceline: 'ppa:jonathonf/python-2.7'
29+
packages:
30+
- libgl1-mesa-dev
31+
- llvm-3.9-dev
32+
- libedit-dev
33+
- python
34+
env:
35+
- BUILD_KIND=DEBUG RUST_BACKTRACE=1 RUSTFLAGS='--deny warnings'
36+
- BUILD_KIND=RELEASE RUST_BACKTRACE=1 RUSTFLAGS='--deny warnings'
37+
before_install:
38+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config; fi
39+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
40+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install zlib; fi
41+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"; fi
42+
- virtualenv ../venv
43+
- source ../venv/bin/activate
44+
- python --version
45+
- pip install mako voluptuous PyYAML servo-tidy
46+
script:
47+
- servo-tidy
48+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender_api && cargo test --verbose --features "ipc"); fi
49+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender && cargo check --verbose --no-default-features); fi
50+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender && cargo check --verbose --no-default-features --features capture); fi
51+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender && cargo check --verbose --features profiler,capture); fi
52+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender && cargo check --verbose --features replay); fi
53+
- if [ $BUILD_KIND = DEBUG ]; then (cd webrender && cargo check --verbose --no-default-features --features pathfinder); fi
54+
- if [ $BUILD_KIND = DEBUG ]; then (cd wrench && cargo check --verbose --features env_logger); fi
55+
- if [ $BUILD_KIND = DEBUG ]; then (cargo test --all --verbose); fi
56+
- if [ $BUILD_KIND = RELEASE ]; then (cd wrench && python script/headless.py reftest); fi
57+
- if [ $BUILD_KIND = RELEASE ]; then (cd wrench && cargo build --release); fi
58+
- if [ $TRAVIS_RUST_VERSION == "nightly" ]; then (cd webrender && cargo bench --verbose); fi

0 commit comments

Comments
 (0)