# 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"