.taskcluster.yml (7725B)
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 # 6 # See https://community-tc.services.mozilla.com/docs 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-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. 121 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"