diff options
Diffstat (limited to 'gfx/wr/.taskcluster.yml')
-rw-r--r-- | gfx/wr/.taskcluster.yml | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/gfx/wr/.taskcluster.yml b/gfx/wr/.taskcluster.yml new file mode 100644 index 0000000000..0c0b268dd7 --- /dev/null +++ b/gfx/wr/.taskcluster.yml @@ -0,0 +1,180 @@ +# 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 which no longer exists. +# +# See https://community-tc.services.mozilla.com/docs +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-v10) 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: noreply@mozilla.com + source: ${repo_url} + provisionerId: proj-webrender + workerType: ci-linux + deadline: {$fromNow: '1 day'} + payload: + maxRunTime: 7200 + image: 'staktrace/webrender-test:debian-v10' + 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/install-meson.sh && + export PATH=$PATH:$PWD/meson && + ci-scripts/linux-release-tests.sh + routes: + - "index.project.webrender.ci.${login}.${branch}.linux-release" + - metadata: + name: Linux debug tests + description: Runs debug-mode WebRender CI stuff on a Linux TC worker + owner: noreply@mozilla.com + source: ${repo_url} + provisionerId: proj-webrender + workerType: ci-linux + deadline: {$fromNow: '1 day'} + payload: + maxRunTime: 7200 + image: 'staktrace/webrender-test:debian-v10' + 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/install-meson.sh && + export PATH=$PATH:$PWD/meson && + ci-scripts/linux-debug-tests.sh + routes: + - "index.project.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 workerpool + # of proj-webrender/ci-macos. They are set up with all the dependencies needed + # to build and test webrender, including Rust (currently 1.41.1), 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. + + # macOS tasks currently disabled, see bug 1639217. + # - metadata: + # name: OS X release tests + # description: Runs release-mode WebRender CI stuff on a OS X TC worker + # owner: noreply@mozilla.com + # source: ${repo_url} + # provisionerId: 'proj-webrender' + # workerType: 'ci-macos' + # 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.project.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: noreply@mozilla.com + # source: ${repo_url} + # provisionerId: 'proj-webrender' + # workerType: 'ci-macos' + # 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.project.webrender.ci.${login}.${branch}.osx-debug" |