Skip to content

Commit 3664fa4

Browse files
author
bors-servo
authored
Auto merge of #1746 - staktrace:taskcluster-ci, r=glennw
Add a .taskcluster.yml file to run CI using taskcluster This is a test PR to see if (a) taskcluster correctly picks up the PR and schedules the CI jobs and (b) to see how bors/homu deal with this extra CI job. This is related to #1724 <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/1746) <!-- Reviewable:end -->
2 parents 6cc2c6a + 0bec79b commit 3664fa4

File tree

2 files changed

+167
-1
lines changed

2 files changed

+167
-1
lines changed

.taskcluster.yml

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
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+
metadata:
9+
name: WebRender
10+
description: Runs WebRender tests in TaskCluster
11+
owner: '{{ event.head.user.email }}'
12+
source: '{{ event.head.repo.url }}'
13+
14+
# This file triggers a set of tasks; the ones targeting Linux are run in a docker
15+
# container using docker-worker (which is a worker type provided by TaskCluster).
16+
# The OS X ones are run in a custom worker type, for which we have worker
17+
# instances configured and running.
18+
tasks:
19+
# For the docker-worker tasks, the Docker image used
20+
# (staktrace/webrender-test:latest) was created using this Dockerfile:
21+
# ---
22+
# FROM ubuntu:16.04
23+
# RUN apt-get -y update && apt-get install -y curl git python python-pip cmake pkg-config libx11-dev libgl1-mesa-dev libfontconfig1-dev
24+
# RUN pip install mako servo-tidy
25+
# RUN useradd -d /home/worker -s /bin/bash -m worker
26+
# USER worker
27+
# WORKDIR /home/worker
28+
# ENV PATH $PATH:/home/worker/.cargo/bin
29+
# CMD /bin/bash
30+
# ---
31+
#
32+
# The docker image may need to be updated over time if the set of required
33+
# packages increases. Note in particular that rust/cargo are not part of the
34+
# docker image, and are re-installed using rustup on each CI run. This ensures
35+
# the latest stable rust compiler is always used.
36+
# CI runs will be triggered on opening PRs, updating PRs, and pushes to the
37+
# repository.
38+
- metadata:
39+
name: Linux release tests
40+
description: Runs release-mode WebRender CI stuff on a Linux TC worker
41+
owner: '{{ event.head.user.email }}'
42+
source: '{{ event.head.repo.url }}'
43+
provisionerId: '{{ taskcluster.docker.provisionerId }}'
44+
workerType: '{{ taskcluster.docker.workerType }}'
45+
extra:
46+
github:
47+
events:
48+
- pull_request.opened
49+
- pull_request.synchronize
50+
- push
51+
payload:
52+
maxRunTime: 3600
53+
image: 'staktrace/webrender-test:latest'
54+
env:
55+
RUST_BACKTRACE: 1
56+
RUSTFLAGS: '--deny warnings'
57+
command:
58+
- /bin/bash
59+
- '--login'
60+
- '-c'
61+
- >-
62+
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
63+
git clone {{event.head.repo.url}} webrender && cd webrender &&
64+
git checkout {{event.head.sha}} &&
65+
servo-tidy &&
66+
(cd wrench && python headless.py reftest) &&
67+
(cd wrench && cargo build --release --features=debugger)
68+
- metadata:
69+
name: Linux debug tests
70+
description: Runs debug-mode WebRender CI stuff on a Linux TC worker
71+
owner: '{{ event.head.user.email }}'
72+
source: '{{ event.head.repo.url }}'
73+
provisionerId: '{{ taskcluster.docker.provisionerId }}'
74+
workerType: '{{ taskcluster.docker.workerType }}'
75+
extra:
76+
github:
77+
events:
78+
- pull_request.opened
79+
- pull_request.synchronize
80+
- push
81+
payload:
82+
maxRunTime: 3600
83+
image: 'staktrace/webrender-test:latest'
84+
env:
85+
RUST_BACKTRACE: 1
86+
RUSTFLAGS: '--deny warnings'
87+
command:
88+
- /bin/bash
89+
- '--login'
90+
- '-c'
91+
- >-
92+
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
93+
git clone {{event.head.repo.url}} webrender && cd webrender &&
94+
git checkout {{event.head.sha}} &&
95+
servo-tidy &&
96+
(cd webrender_api && cargo test --verbose --features "ipc") &&
97+
(cd webrender && cargo build --verbose --no-default-features) &&
98+
(cargo test --all --verbose)
99+
# For the OS X jobs we use a pool of machines that we are managing, because
100+
# Mozilla releng doesn't have any spare OS X machines for us at this time.
101+
# Talk to :kats or :jrmuizel if you need more details about this. The machines
102+
# are hooked up to taskcluster using taskcluster-worker; they use a worker-type
103+
# of kats-webrender-ci-osx. They are set up with all the dependencies needed
104+
# to build and test webrender, including Rust (currently 1.20), servo-tidy,
105+
# mako, zlib, etc. Note that unlike the docker-worker used for Linux, these
106+
# machines WILL persist state from one run to the next, so any cleanup needs
107+
# to be handled explicitly.
108+
- metadata:
109+
name: OS X release tests
110+
description: Runs release-mode WebRender CI stuff on a OS X TC worker
111+
owner: '{{ event.head.user.email }}'
112+
source: '{{ event.head.repo.url }}'
113+
provisionerId: 'localprovisioner'
114+
workerType: 'kats-webrender-ci-osx'
115+
extra:
116+
github:
117+
events:
118+
- pull_request.opened
119+
- pull_request.synchronize
120+
- push
121+
payload:
122+
maxRunTime: 3600
123+
command:
124+
- /bin/bash
125+
- '--login'
126+
- '-c'
127+
- >-
128+
rm -rf webrender &&
129+
git clone {{event.head.repo.url}} webrender && cd webrender &&
130+
git checkout {{event.head.sha}} &&
131+
source ../servotidy-venv/bin/activate && servo-tidy &&
132+
export RUST_BACKTRACE=1 &&
133+
export RUSTFLAGS='--deny warnings' &&
134+
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH" &&
135+
(cd webrender_api && cargo test --verbose --features "ipc") &&
136+
(cd webrender && cargo build --verbose --no-default-features) &&
137+
(cargo test --all --verbose)
138+
- metadata:
139+
name: OS X debug tests
140+
description: Runs debug-mode WebRender CI stuff on a OS X TC worker
141+
owner: '{{ event.head.user.email }}'
142+
source: '{{ event.head.repo.url }}'
143+
provisionerId: 'localprovisioner'
144+
workerType: 'kats-webrender-ci-osx'
145+
extra:
146+
github:
147+
events:
148+
- pull_request.opened
149+
- pull_request.synchronize
150+
- push
151+
payload:
152+
maxRunTime: 3600
153+
command:
154+
- /bin/bash
155+
- '--login'
156+
- '-c'
157+
- >-
158+
rm -rf webrender &&
159+
git clone {{event.head.repo.url}} webrender && cd webrender &&
160+
git checkout {{event.head.sha}} &&
161+
source ../servotidy-venv/bin/activate && servo-tidy &&
162+
export RUST_BACKTRACE=1 &&
163+
export RUSTFLAGS='--deny warnings' &&
164+
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH" &&
165+
(cd wrench && python headless.py reftest) &&
166+
(cd wrench && cargo build --release --features=debugger)

wrench/reftests/text/reftest.list

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ fuzzy(1,100) == decorations-suite.yaml decorations-suite.png
1717
== 1658.yaml 1658-ref.yaml
1818
== split-batch.yaml split-batch-ref.yaml
1919
== shadow-red.yaml shadow-red-ref.yaml
20-
fuzzy(1,136) == shadow-grey.yaml shadow-grey-ref.yaml
20+
fuzzy(1,160) == shadow-grey.yaml shadow-grey-ref.yaml
2121
== subtle-shadow.yaml subtle-shadow-ref.yaml
2222
# enable when synthetic-italics implemented on mac
2323
# != synthetic-italics.yaml synthetic-italics-ref.yaml

0 commit comments

Comments
 (0)