diff --git a/.travis.yml b/.travis.yml index 076584edc8e..f3e65d62125 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,25 @@ language: python -sudo: false +sudo: 9000 +services: + - docker + +before_install: + - if [ "$DOCKER" = "1" ]; then docker build -t servo etc/ci/; fi script: - - ./mach test-tidy + - if [ "$DOCKER" = "0" ]; then sh -c "$CMD"; fi + - if [ "$DOCKER" = "1" ]; then docker run -tv `pwd`:/build servo sh -c "$CMD"; fi + +matrix: + fast_finish: true + include: + - env: + - CMD="./mach test-tidy" + - DOCKER=0 + - env: + - CMD="./mach build -d --verbose" + - DOCKER=1 branches: only: - - master \ No newline at end of file + - master diff --git a/etc/ci/Dockerfile b/etc/ci/Dockerfile new file mode 100644 index 00000000000..beddf0f0f0b --- /dev/null +++ b/etc/ci/Dockerfile @@ -0,0 +1,33 @@ +FROM ubuntu:vivid + +# Required by mozjs to build +ENV SHELL /bin/sh + +# Enable 'universe' since it is not enabled by default +RUN echo "deb http://archive.ubuntu.com/ubuntu vivid main universe" > /etc/apt/sources.list +RUN echo "deb http://archive.ubuntu.com/ubuntu vivid-updates main universe" >> /etc/apt/sources.list + +# Install dependencies +RUN apt-get -y update +RUN apt-get install -y \ + cmake \ + curl \ + freeglut3-dev \ + g++ \ + git \ + gperf \ + libbz2-dev \ + libfreetype6-dev \ + libgl1-mesa-dri \ + libglib2.0-dev \ + libglu1-mesa-dev \ + libosmesa6-dev \ + libssl-dev \ + libxmu-dev \ + libxmu6 \ + python-virtualenv \ + xorg-dev + +# Servo will be built in /build +RUN mkdir /build +WORKDIR /build