зеркало из https://github.com/mozilla/gecko-dev.git
206 строки
7.8 KiB
YAML
206 строки
7.8 KiB
YAML
# 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 at https://tools.taskcluster.net/quickstart/ and then expanded
|
|
# as needed.
|
|
#
|
|
version: 0
|
|
allowPullRequests: public
|
|
metadata:
|
|
name: WebRender
|
|
description: Runs WebRender tests in TaskCluster
|
|
owner: '{{ event.head.user.email }}'
|
|
source: '{{ event.head.repo.url }}'
|
|
|
|
# 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:
|
|
# For the docker-worker tasks, the Docker image used
|
|
# (staktrace/webrender-test:freetype28) was created using this Dockerfile:
|
|
# ---
|
|
# FROM ubuntu:16.04
|
|
# RUN apt-get -y update && apt-get install -y curl git python python-pip cmake pkg-config libx11-dev libgl1-mesa-dev libfontconfig1-dev software-properties-common
|
|
# RUN add-apt-repository -y -u ppa:glasen/freetype2
|
|
# RUN apt-get -y install freetype2-demos
|
|
# RUN pip install mako voluptuous PyYAML servo-tidy
|
|
# RUN useradd -d /home/worker -s /bin/bash -m worker
|
|
# USER worker
|
|
# WORKDIR /home/worker
|
|
# ENV PATH $PATH:/home/worker/.cargo/bin
|
|
# CMD /bin/bash
|
|
# ---
|
|
#
|
|
# 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: '{{ event.head.user.email }}'
|
|
source: '{{ event.head.repo.url }}'
|
|
provisionerId: '{{ taskcluster.docker.provisionerId }}'
|
|
workerType: '{{ taskcluster.docker.workerType }}'
|
|
extra:
|
|
github:
|
|
events:
|
|
- pull_request.opened
|
|
- pull_request.synchronize
|
|
- push
|
|
excludeBranches:
|
|
- master
|
|
payload:
|
|
maxRunTime: 7200
|
|
image: 'staktrace/webrender-test:freetype28'
|
|
env:
|
|
RUST_BACKTRACE: 'full'
|
|
RUSTFLAGS: '--deny warnings'
|
|
command:
|
|
- /bin/bash
|
|
- '--login'
|
|
- '-c'
|
|
- >-
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
|
|
git clone {{event.head.repo.url}} webrender && cd webrender &&
|
|
git checkout {{event.head.sha}} &&
|
|
servo-tidy &&
|
|
ci-scripts/linux-release-tests.sh
|
|
routes:
|
|
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.linux-release"
|
|
- metadata:
|
|
name: Linux debug tests
|
|
description: Runs debug-mode WebRender CI stuff on a Linux TC worker
|
|
owner: '{{ event.head.user.email }}'
|
|
source: '{{ event.head.repo.url }}'
|
|
provisionerId: '{{ taskcluster.docker.provisionerId }}'
|
|
workerType: '{{ taskcluster.docker.workerType }}'
|
|
extra:
|
|
github:
|
|
events:
|
|
- pull_request.opened
|
|
- pull_request.synchronize
|
|
- push
|
|
excludeBranches:
|
|
- master
|
|
payload:
|
|
maxRunTime: 7200
|
|
image: 'staktrace/webrender-test:freetype28'
|
|
env:
|
|
RUST_BACKTRACE: 'full'
|
|
RUSTFLAGS: '--deny warnings'
|
|
command:
|
|
- /bin/bash
|
|
- '--login'
|
|
- '-c'
|
|
- >-
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y &&
|
|
git clone {{event.head.repo.url}} webrender && cd webrender &&
|
|
git checkout {{event.head.sha}} &&
|
|
servo-tidy &&
|
|
ci-scripts/linux-debug-tests.sh
|
|
routes:
|
|
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.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 worker-type
|
|
# of webrender-ci-osx. They are set up with all the dependencies needed
|
|
# to build and test webrender, including Rust (currently 1.30), 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: '{{ event.head.user.email }}'
|
|
source: '{{ event.head.repo.url }}'
|
|
provisionerId: 'localprovisioner'
|
|
workerType: 'webrender-ci-osx'
|
|
extra:
|
|
github:
|
|
events:
|
|
- pull_request.opened
|
|
- pull_request.synchronize
|
|
- push
|
|
excludeBranches:
|
|
- master
|
|
payload:
|
|
maxRunTime: 3600
|
|
command:
|
|
- - /bin/bash
|
|
- '--login'
|
|
- '-vec'
|
|
- |
|
|
git clone {{event.head.repo.url}} webrender
|
|
cd webrender
|
|
git checkout {{event.head.sha}}
|
|
source $HOME/servotidy-venv/bin/activate
|
|
servo-tidy
|
|
sccache --stop-server || true
|
|
mkdir -p ../artifacts
|
|
RUST_LOG=sccache=trace SCCACHE_ERROR_LOG=$PWD/../artifacts/sccache.log sccache --start-server
|
|
export RUST_BACKTRACE=full
|
|
export RUSTFLAGS='--deny warnings'
|
|
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
export RUSTC_WRAPPER=sccache
|
|
echo 'exec make -j1 "$@"' > $HOME/make # See #2638
|
|
chmod +x $HOME/make
|
|
export MAKE="$HOME/make"
|
|
ci-scripts/macos-release-tests.sh
|
|
sccache --stop-server || true
|
|
artifacts:
|
|
- name: public/sccache.log
|
|
path: artifacts/sccache.log
|
|
type: file
|
|
routes:
|
|
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-release"
|
|
- metadata:
|
|
name: OS X debug tests
|
|
description: Runs debug-mode WebRender CI stuff on a OS X TC worker
|
|
owner: '{{ event.head.user.email }}'
|
|
source: '{{ event.head.repo.url }}'
|
|
provisionerId: 'localprovisioner'
|
|
workerType: 'webrender-ci-osx'
|
|
extra:
|
|
github:
|
|
events:
|
|
- pull_request.opened
|
|
- pull_request.synchronize
|
|
- push
|
|
excludeBranches:
|
|
- master
|
|
payload:
|
|
maxRunTime: 3600
|
|
command:
|
|
- - /bin/bash
|
|
- '--login'
|
|
- '-vec'
|
|
- |
|
|
git clone {{event.head.repo.url}} webrender
|
|
cd webrender
|
|
git checkout {{event.head.sha}}
|
|
source $HOME/servotidy-venv/bin/activate
|
|
servo-tidy
|
|
sccache --stop-server || true
|
|
mkdir -p ../artifacts
|
|
RUST_LOG=sccache=trace SCCACHE_ERROR_LOG=$PWD/../artifacts/sccache.log sccache --start-server
|
|
export RUST_BACKTRACE=full
|
|
export RUSTFLAGS='--deny warnings'
|
|
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
export RUSTC_WRAPPER=sccache
|
|
echo 'exec make -j1 "$@"' > $HOME/make # See #2638
|
|
chmod +x $HOME/make
|
|
export MAKE="$HOME/make"
|
|
ci-scripts/macos-debug-tests.sh
|
|
sccache --stop-server || true
|
|
artifacts:
|
|
- name: public/sccache.log
|
|
path: artifacts/sccache.log
|
|
type: file
|
|
routes:
|
|
- "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-debug"
|