# 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-v5) 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-v5' 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/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-v5' 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/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. - 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"