language: python

matrix:
  fast_finish: true
  include:
    - sudo: false
      script:
         - ./mach test-tidy --no-progress --all
         - ./mach test-tidy --no-progress --self-test
         - bash etc/ci/check_no_panic.sh
         - bash etc/ci/manifest_changed.sh
      cache: false
    - sudo: 9000
      dist: trusty
      before_install:
        - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
        - sudo add-apt-repository 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.9 main' -y
        - sudo apt-get update -q
        - sudo apt-get install clang-3.9 llvm-3.9 llvm-3.9-runtime -y
        - export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
        - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
        - source ~/.profile
      script:
         - ./mach build -d --verbose
         - ./mach test-unit
         - ./mach clean
         - ./mach build-geckolib
         - ./mach test-stylo
         - bash etc/ci/lockfile_changed.sh
      cache:
        directories:
          - .servo
          - $HOME/.cargo
          - $HOME/.rustup
          - $HOME/.ccache
      before_cache:
        - ./mach clean-nightlies --keep 2 --force
        - ./mach clean-cargo-cache --keep 2 --force
      env:
        CCACHE=/usr/bin/ccache
        RUSTFLAGS=-Dwarnings
        CARGO_INCREMENTAL=0
      addons:
        apt:
          packages:
            - cmake
            - freeglut3-dev
            - gperf
            - libosmesa6-dev
            - libgles2-mesa-dev
            - python-virtualenv
            - xorg-dev
            - ccache
            - libdbus-glib-1-dev
            - libedit-dev

branches:
  only:
    - master
