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