Backed out 5 changesets (bug 1866429, bug 1866421, bug 1865046, bug 1866462, bug...
[gecko.git] / gfx / wr / .taskcluster.yml
blob0c0b268dd70a2807ed7abb213334995c09d55c03
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
7 version: 1
8 policy:
9   pullRequests: public
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-v10) 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-v10'
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/install-meson.sh &&
79                 export PATH=$PATH:$PWD/meson &&
80                 ci-scripts/linux-release-tests.sh
81           routes:
82             - "index.project.webrender.ci.${login}.${branch}.linux-release"
83         - metadata:
84             name: Linux debug tests
85             description: Runs debug-mode WebRender CI stuff on a Linux TC worker
86             owner: noreply@mozilla.com
87             source: ${repo_url}
88           provisionerId: proj-webrender
89           workerType: ci-linux
90           deadline: {$fromNow: '1 day'}
91           payload:
92             maxRunTime: 7200
93             image: 'staktrace/webrender-test:debian-v10'
94             env:
95               RUST_BACKTRACE: 'full'
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                 source $HOME/.cargo/env &&
104                 git clone ${repo_url} webrender && cd webrender &&
105                 git checkout ${sha} &&
106                 servo-tidy &&
107                 ci-scripts/install-meson.sh &&
108                 export PATH=$PATH:$PWD/meson &&
109                 ci-scripts/linux-debug-tests.sh
110           routes:
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.
123         # - metadata:
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'}
131         #   payload:
132         #     maxRunTime: 3600
133         #     command:
134         #       - - /bin/bash
135         #         - '--login'
136         #         - '-vec'
137         #         - |
138         #           git clone ${repo_url} webrender
139         #           cd webrender
140         #           git checkout ${sha}
141         #           source $HOME/servotidy-venv/bin/activate
142         #           servo-tidy
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
150         #   routes:
151         #     - "index.project.webrender.ci.${login}.${branch}.osx-release"
152         # - metadata:
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'}
160         #   payload:
161         #     maxRunTime: 3600
162         #     command:
163         #       - - /bin/bash
164         #         - '--login'
165         #         - '-vec'
166         #         - |
167         #           git clone ${repo_url} webrender
168         #           cd webrender
169         #           git checkout ${sha}
170         #           source $HOME/servotidy-venv/bin/activate
171         #           servo-tidy
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
179         #   routes:
180         #     - "index.project.webrender.ci.${login}.${branch}.osx-debug"