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.
6 # See https://community-tc.services.mozilla.com/docs
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.
16 $if: 'tasks_for in ["github-push", "github-pull-request"]'
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"]'}
26 $if: 'tasks_for == "github-push"'
27 then: ${event.repository.clone_url}
28 else: ${event.pull_request.head.repo.clone_url}
30 $if: 'tasks_for == "github-push"'
32 else: ${event.pull_request.head.sha}
33 login: ${event.sender.login}
35 $if: 'tasks_for == "github-push"'
37 $if: 'event.ref[:11] == "refs/heads/"'
38 then: ${event.ref[11:]}
40 else: ${event.pull_request.head.ref}
44 # For the docker-worker tasks, the Docker image used
45 # (staktrace/webrender-test:debian-v9) was created using the Dockerfile in
46 # ci-scripts/docker-image.
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
55 name: Linux release tests
56 description: Runs release-mode WebRender CI stuff on a Linux TC worker
57 owner: noreply@mozilla.com
59 provisionerId: proj-webrender
61 deadline: {$fromNow: '1 day'}
64 image: 'staktrace/webrender-test:debian-v9'
66 RUST_BACKTRACE: 'full'
67 RUSTFLAGS: '--deny warnings'
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} &&
78 ci-scripts/install-meson.sh &&
79 export PATH=$PATH:$PWD/meson &&
80 ci-scripts/linux-release-tests.sh
82 - "index.project.webrender.ci.${login}.${branch}.linux-release"
84 name: Linux debug tests
85 description: Runs debug-mode WebRender CI stuff on a Linux TC worker
86 owner: noreply@mozilla.com
88 provisionerId: proj-webrender
90 deadline: {$fromNow: '1 day'}
93 image: 'staktrace/webrender-test:debian-v9'
95 RUST_BACKTRACE: 'full'
96 RUSTFLAGS: '--deny warnings'
102 curl https://sh.rustup.rs -sSf | sh -s -- -y &&
103 source $HOME/.cargo/env &&
104 git clone ${repo_url} webrender && cd webrender &&
105 git checkout ${sha} &&
107 ci-scripts/install-meson.sh &&
108 export PATH=$PATH:$PWD/meson &&
109 ci-scripts/linux-debug-tests.sh
111 - "index.project.webrender.ci.${login}.${branch}.linux-debug"
112 # For the OS X jobs we use a pool of machines that we are managing, because
113 # Mozilla releng doesn't have any spare OS X machines for us at this time.
114 # Talk to :kats or :jrmuizel if you need more details about this. The machines
115 # are hooked up to taskcluster using taskcluster-worker; they use a workerpool
116 # of proj-webrender/ci-macos. They are set up with all the dependencies needed
117 # to build and test webrender, including Rust (currently 1.41.1), servo-tidy,
118 # mako, zlib, etc. Note that unlike the docker-worker used for Linux, these
119 # machines WILL persist state from one run to the next, so any cleanup needs
120 # to be handled explicitly.
122 # macOS tasks currently disabled, see bug 1639217.
124 # name: OS X release tests
125 # description: Runs release-mode WebRender CI stuff on a OS X TC worker
126 # owner: noreply@mozilla.com
127 # source: ${repo_url}
128 # provisionerId: 'proj-webrender'
129 # workerType: 'ci-macos'
130 # deadline: {$fromNow: '1 day'}
138 # git clone ${repo_url} webrender
140 # git checkout ${sha}
141 # source $HOME/servotidy-venv/bin/activate
143 # export RUST_BACKTRACE=full
144 # export RUSTFLAGS='--deny warnings'
145 # export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
146 # echo 'exec make -j1 "$@"' > $HOME/make # See #2638
147 # chmod +x $HOME/make
148 # export MAKE="$HOME/make"
149 # ci-scripts/macos-release-tests.sh
151 # - "index.project.webrender.ci.${login}.${branch}.osx-release"
153 # name: OS X debug tests
154 # description: Runs debug-mode WebRender CI stuff on a OS X TC worker
155 # owner: noreply@mozilla.com
156 # source: ${repo_url}
157 # provisionerId: 'proj-webrender'
158 # workerType: 'ci-macos'
159 # deadline: {$fromNow: '1 day'}
167 # git clone ${repo_url} webrender
169 # git checkout ${sha}
170 # source $HOME/servotidy-venv/bin/activate
172 # export RUST_BACKTRACE=full
173 # export RUSTFLAGS='--deny warnings'
174 # export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
175 # echo 'exec make -j1 "$@"' > $HOME/make # See #2638
176 # chmod +x $HOME/make
177 # export MAKE="$HOME/make"
178 # ci-scripts/macos-debug-tests.sh
180 # - "index.project.webrender.ci.${login}.${branch}.osx-debug"