Revision control

Other Tools

1
# This file specifies the configuration needed to test WebRender using the
2
# Taskcluster infrastructure. Most of this should be relatively
3
# self-explanatory; this file was originally generated by using the
4
# Taskcluster-GitHub integration quickstart tool which no longer exists.
5
#
7
version: 1
8
policy:
9
pullRequests: public
10
11
# This file triggers a set of tasks; the ones targeting Linux are run in a docker
12
# container using docker-worker (which is a worker type provided by TaskCluster).
13
# The OS X ones are run in a custom worker type, for which we have worker
14
# instances configured and running.
15
tasks:
16
$if: 'tasks_for in ["github-push", "github-pull-request"]'
17
then:
18
$let:
19
should_run:
20
$if: 'tasks_for == "github-push"'
21
# for pushes, run on any branch but master
22
then: {$eval: 'event.ref != "refs/heads/master"'}
23
# for PRs, run for opened and synchronized events
24
else: {$eval: 'event.action in ["opened", "synchronize"]'}
25
repo_url:
26
$if: 'tasks_for == "github-push"'
27
then: ${event.repository.clone_url}
28
else: ${event.pull_request.head.repo.clone_url}
29
sha:
30
$if: 'tasks_for == "github-push"'
31
then: ${event.after}
32
else: ${event.pull_request.head.sha}
33
login: ${event.sender.login}
34
branch:
35
$if: 'tasks_for == "github-push"'
36
then:
37
$if: 'event.ref[:11] == "refs/heads/"'
38
then: ${event.ref[11:]}
39
else: ${event.ref}
40
else: ${event.pull_request.head.ref}
41
in:
42
$if: should_run
43
then:
44
# For the docker-worker tasks, the Docker image used
45
# (staktrace/webrender-test:debian-v3) was created using the Dockerfile in
46
# ci-scripts/docker-image.
47
#
48
# The docker image may need to be updated over time if the set of required
49
# packages increases. Note in particular that rust/cargo are not part of the
50
# docker image, and are re-installed using rustup on each CI run. This ensures
51
# the latest stable rust compiler is always used.
52
# CI runs will be triggered on opening PRs, updating PRs, and pushes to the
53
# repository.
54
- metadata:
55
name: Linux release tests
56
description: Runs release-mode WebRender CI stuff on a Linux TC worker
57
owner: noreply@mozilla.com
58
source: ${repo_url}
59
provisionerId: proj-webrender
60
workerType: ci-linux
61
deadline: {$fromNow: '1 day'}
62
payload:
63
maxRunTime: 7200
64
image: 'staktrace/webrender-test:debian-v3'
65
env:
66
RUST_BACKTRACE: 'full'
67
RUSTFLAGS: '--deny warnings'
68
command:
69
- /bin/bash
70
- '--login'
71
- '-c'
72
- >-
73
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
74
source $HOME/.cargo/env &&
75
git clone ${repo_url} webrender && cd webrender &&
76
git checkout ${sha} &&
77
servo-tidy &&
78
ci-scripts/linux-release-tests.sh
79
routes:
80
- "index.project.webrender.ci.${login}.${branch}.linux-release"
81
- metadata:
82
name: Linux debug tests
83
description: Runs debug-mode WebRender CI stuff on a Linux TC worker
84
owner: noreply@mozilla.com
85
source: ${repo_url}
86
provisionerId: proj-webrender
87
workerType: ci-linux
88
deadline: {$fromNow: '1 day'}
89
payload:
90
maxRunTime: 7200
91
image: 'staktrace/webrender-test:debian-v3'
92
env:
93
RUST_BACKTRACE: 'full'
94
RUSTFLAGS: '--deny warnings'
95
command:
96
- /bin/bash
97
- '--login'
98
- '-c'
99
- >-
100
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
101
source $HOME/.cargo/env &&
102
git clone ${repo_url} webrender && cd webrender &&
103
git checkout ${sha} &&
104
servo-tidy &&
105
ci-scripts/linux-debug-tests.sh
106
routes:
107
- "index.project.webrender.ci.${login}.${branch}.linux-debug"
108
# For the OS X jobs we use a pool of machines that we are managing, because
109
# Mozilla releng doesn't have any spare OS X machines for us at this time.
110
# Talk to :kats or :jrmuizel if you need more details about this. The machines
111
# are hooked up to taskcluster using taskcluster-worker; they use a workerpool
112
# of proj-webrender/ci-macos. They are set up with all the dependencies needed
113
# to build and test webrender, including Rust (currently 1.41.1), servo-tidy,
114
# mako, zlib, etc. Note that unlike the docker-worker used for Linux, these
115
# machines WILL persist state from one run to the next, so any cleanup needs
116
# to be handled explicitly.
117
- metadata:
118
name: OS X release tests
119
description: Runs release-mode WebRender CI stuff on a OS X TC worker
120
owner: noreply@mozilla.com
121
source: ${repo_url}
122
provisionerId: 'proj-webrender'
123
workerType: 'ci-macos'
124
deadline: {$fromNow: '1 day'}
125
payload:
126
maxRunTime: 3600
127
command:
128
- - /bin/bash
129
- '--login'
130
- '-vec'
131
- |
132
git clone ${repo_url} webrender
133
cd webrender
134
git checkout ${sha}
135
source $HOME/servotidy-venv/bin/activate
136
servo-tidy
137
export RUST_BACKTRACE=full
138
export RUSTFLAGS='--deny warnings'
139
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
140
echo 'exec make -j1 "$@"' > $HOME/make # See #2638
141
chmod +x $HOME/make
142
export MAKE="$HOME/make"
143
ci-scripts/macos-release-tests.sh
144
routes:
145
- "index.project.webrender.ci.${login}.${branch}.osx-release"
146
- metadata:
147
name: OS X debug tests
148
description: Runs debug-mode WebRender CI stuff on a OS X TC worker
149
owner: noreply@mozilla.com
150
source: ${repo_url}
151
provisionerId: 'proj-webrender'
152
workerType: 'ci-macos'
153
deadline: {$fromNow: '1 day'}
154
payload:
155
maxRunTime: 3600
156
command:
157
- - /bin/bash
158
- '--login'
159
- '-vec'
160
- |
161
git clone ${repo_url} webrender
162
cd webrender
163
git checkout ${sha}
164
source $HOME/servotidy-venv/bin/activate
165
servo-tidy
166
export RUST_BACKTRACE=full
167
export RUSTFLAGS='--deny warnings'
168
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
169
echo 'exec make -j1 "$@"' > $HOME/make # See #2638
170
chmod +x $HOME/make
171
export MAKE="$HOME/make"
172
ci-scripts/macos-debug-tests.sh
173
routes:
174
- "index.project.webrender.ci.${login}.${branch}.osx-debug"