Build environment

Change-Id: I1625f5ccf69d3cb78033439c411df419b9916cb3
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..984e8ac
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,97 @@
+language: cpp
+dist: xenial
+sudo: required
+env:
+  global:
+    - JOB_NAME=limited-build
+    - WAF_JOBS=2
+
+matrix:
+  include:
+    # Linux/gcc
+    # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
+    - os: linux
+      env: COMPILER=g++-5
+    - os: linux
+      env: COMPILER=g++-6
+    - os: linux
+      env: COMPILER=g++-7
+    - os: linux
+      env: COMPILER=g++-8
+
+    # Linux/clang
+    # https://apt.llvm.org/
+    - os: linux
+      env: COMPILER=clang++-3.5
+    - os: linux
+      env: COMPILER=clang++-3.6
+    - os: linux
+      env: COMPILER=clang++-3.7 DISABLE_ASAN=yes
+    - os: linux
+      env: COMPILER=clang++-3.8
+    - os: linux
+      env: COMPILER=clang++-3.9
+    - os: linux
+      env: COMPILER=clang++-4.0
+    - os: linux
+      env: COMPILER=clang++-5.0
+    - os: linux
+      env: COMPILER=clang++-6.0
+    - os: linux
+      env: COMPILER=clang++-7
+
+    # macOS/clang
+    # https://docs.travis-ci.com/user/reference/osx/#OS-X-Version
+    - os: osx
+      osx_image: xcode7.3
+      env: OSX_VERSION=10.11
+    - os: osx
+      osx_image: xcode8.3
+      env: OSX_VERSION=10.12
+    - os: osx
+      osx_image: xcode9.3
+      env: OSX_VERSION=10.13
+
+  allow_failures:
+    - env: COMPILER=g++-6
+    - env: COMPILER=g++-7
+    - env: COMPILER=g++-8
+    - env: COMPILER=clang++-3.5
+    - env: COMPILER=clang++-3.6
+    - env: COMPILER=clang++-3.7 DISABLE_ASAN=yes
+    - env: COMPILER=clang++-3.8
+    - env: COMPILER=clang++-3.9
+    - env: COMPILER=clang++-4.0
+    - env: COMPILER=clang++-5.0
+    - env: COMPILER=clang++-6.0
+    - env: COMPILER=clang++-7
+
+  fast_finish: true
+
+install: |
+    case ${COMPILER} in
+      g++-[6789])
+        travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+        travis_retry sudo apt-get -qq update
+        travis_retry sudo apt-get -qy install "${COMPILER}"
+        ;;
+      clang++-*)
+        CLANG_VERSION=${COMPILER/clang++}
+        if [[ ${CLANG_VERSION} != "-3."* ]]; then
+          wget -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
+          travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${CLANG_VERSION/-7} main"
+        fi
+        travis_retry sudo apt-get -qq update
+        travis_retry sudo apt-get -qy install "clang${CLANG_VERSION}"
+        ;;
+    esac
+
+before_script:
+  - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-16.04"; fi
+  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi
+  - if [[ -n ${COMPILER} ]]; then export CXX=${COMPILER}; fi
+  - ${CXX:-c++} --version
+  - python --version
+
+script:
+  - ./.jenkins