DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b6d82b1a6b02)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
# 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:debian-v3) 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: '{{ 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:debian-v3'
      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 {{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:debian-v3'
      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 {{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
            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.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
            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.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-debug"