summaryrefslogtreecommitdiffstats
path: root/gfx/wr/.taskcluster.yml
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/wr/.taskcluster.yml')
-rw-r--r--gfx/wr/.taskcluster.yml180
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..2948f02d31
--- /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-v9) 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-v9'
+ 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-v9'
+ 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"