branches:
  only:
    - master
    - /^v\d+\.\d+\.\d+$/

compiler: clang

os:
  - linux
  - osx

sudo: false

env:
  matrix:
    - export NODE_VERSION="0.12" TARGET_ARCH="x64"
    - export NODE_VERSION="4.1" TARGET_ARCH="x64"
    - export NODE_VERSION="5.8" TARGET_ARCH="x64"
    - export NODE_VERSION="6" TARGET_ARCH="x64"

matrix:
  fast_finish: true
  include:
    - os: linux
      env: export NODE_VERSION="0.12" TARGET_ARCH="ia32"
      sudo: required
    - os: linux
      env: export NODE_VERSION="4.1" TARGET_ARCH="ia32"
      sudo: required
    - os: linux
      env: export NODE_VERSION="5.8" TARGET_ARCH="ia32"
      sudo: required
    - os: linux
      env: export NODE_VERSION="6" TARGET_ARCH="ia32"
      sudo: required

git:
  depth: 1

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - build-essential
      - libssl-dev
      - gcc-4.9-multilib
      - g++-4.9-multilib
      - lcov

before_install:
  - export CC=clang
  - export CXX=clang++
  - export npm_config_clang=1

  - if [ $TARGET_ARCH == "ia32" ]; then
      sudo ln -s /usr/include/asm-generic /usr/include/asm;
    fi

  - if [ $TRAVIS_OS_NAME != "linux" ]; then
      git clone https://github.com/creationix/nvm.git ./.nvm;
      source ./.nvm/nvm.sh;
    fi

  - nvm install $NODE_VERSION

  - if [ -z "$TRAVIS_TAG" ] && [ $TRAVIS_OS_NAME == "linux" ] && [ $NODE_VERSION == "0.12" ]; then
      export GYP_DEFINES="coverage=1 use_obsolete_asm=true";
      export JOBS=4;
      export CC=/usr/bin/gcc-4.9;
      export CXX=/usr/bin/g++-4.9;
      export npm_config_clang=0;
      wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz;
      tar xvfz lcov-1.10.tar.gz;
    else
      export GYP_DEFINES="use_obsolete_asm=true";
      export JOBS=4;
    fi

install:
  - npm install

# This is a random private key used purely for testing.
before_script:
  - echo -e "Host *\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
  - echo -e "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkTcgXnHuqR0gbwegnr9Zxz4hTkjjV/SpgJNPJz7mo/HKNbx0rqjj1P0yGR053R9GSFFim2ut4NK9DPPUkQdyucw+DoLkYRHJmlJ4BNa9NTCD0sl+eSXO2969kZojCYSOgbmkCJx8mdgTwhzdgE/jhBrsY0hPE6pRTlU+H68/zeNdJUAIJf0LLXOm3hpTKLA19VICltl/j9VvBJpgRHdBylXEyL8HokYpjkQQk1ZXj3m7Nlo8yDdg4VcljOJWC+Xh8kxRMfK5x/VRVsYKCQXN5QlzKeqf7USRDUS/7mFoPUBW+d4kwKtGxRsWuIL2yeqzifZUTOgsh9+ZWAWxWffQZ your_email@example.com" > ~/.ssh/id_rsa.pub
  - echo -e "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA5E3IF5x7qkdIG8HoJ6/Wcc+IU5I41f0qYCTTyc+5qPxyjW8d\nK6o49T9MhkdOd0fRkhRYptrreDSvQzz1JEHcrnMPg6C5GERyZpSeATWvTUwg9LJf\nnklztvevZGaIwmEjoG5pAicfJnYE8Ic3YBP44Qa7GNITxOqUU5VPh+vP83jXSVAC\nCX9Cy1zpt4aUyiwNfVSApbZf4/VbwSaYER3QcpVxMi/B6JGKY5EEJNWV495uzZaP\nMg3YOFXJYziVgvl4fJMUTHyucf1UVbGCgkFzeUJcynqn+1EkQ1Ev+5haD1AVvneJ\nMCrRsUbFriC9snqs4n2VEzoLIffmVgFsVn30GQIDAQABAoIBAQDPQm2sQbti0mN8\nD4Uawl8D40v30n8WhUa7EbPTOmlqKAQ2sfDhex9KRbTLEmEBmImA/Eee8o9iCTIy\n8Fv8Fm6pUHt9G6Pti/XvemwW3Q3QNpSUkHqN0FDkgecQVqVBEb6uHo3mDm4RFINX\neOmkp30BjIK9/blEw1D0sFALLOEUPaDdPMwiXtFgqfrFSgpDET3TvQIwZ2LxxTm0\ncNmP3sCSlZHJNkZI4hBEWaaXR+V5/+C1qblDCo5blAWTcX3UzqrwUUJgFi6VnBuh\n7S9Q6+CEIU+4JRyWQNmY8YgZFaAp6IOr/kyfPxTP1+UEVVgcLn3WDYwfG9og0tmz\nfzlruAgBAoGBAPfz73Pey86tNZEanhJhbX8gVjzy2hvyhT0paHg0q/H6c1VWOtUH\nOwZ3Ns2xAZqJhlDqCHnQYSCZDly042U/theP4N8zo1APb4Yg4qdmXF9QE1+2M03r\nkS6138gU/CSCLf8pCYa6pA/GmsaXxloeJGLvT4fzOZRsVav80/92XHRhAoGBAOu2\nmKh4Gr1EjgN9QNbk9cQTSFDtlBEqO/0pTepvL73UvNp/BAn4iYZFU4WnklFVBSWc\nL84Sc732xU12TAbTTUsa6E7W29pS8u7zVTxlIdQIIU5pzDyU1pNNk2kpxzte5p3Y\nPDtniPFsoYLWoH0LpsKL93t2pLAj+IOkE6f3XBq5AoGAIKaYo5N1FxQr952frx/x\nQUpK0N/R5Ng8v18SiLG26rhmM5iVSrQXC7TrHI7wfR8a9tC6qP/NqnM9NuwC/bQ0\nEEo7/GhaWxKNRwZRkmWiSFLNGk9t1hbtGU+N1lUdFtmloPIQdRNiw0kN3JTj474Q\nYI7O1EItFORnK6yxZfR6HEECgYEA1CT7MGUoa8APsMRCXyaiq15Pb8bjxK8mXquW\nHLEFXuzhLCW1FORDoj0y9s/iuKC0iS0ROX8R/J7k5NrbgikbH8WP36UxKkYNr1IC\nHOFImPTYRSKjVsL+fIUNb1DSp3S6SsYbL7v3XJJQqtlQiDq8U8x1aQFXJ9C4EoLR\nzhKrKsECgYBtU/TSF/TATZY5XtrN9O+HX1Fbz70Ci8XgvioheVI2fezOcXPRzDcC\nOYPaCMNKA5E8gHdg4s0TN7uDvKTJ+KhSg2V7gZ39A28dHrJaRX7Nz4k6t2uEBjX9\na1JidpAIbJ+3w7+hj6L299tVZvS+Y/6Dz/uuEQGXfJg/l/5CCvQPsA==\n-----END RSA PRIVATE KEY-----" > ~/.ssh/id_rsa
  - chmod 600 ~/.ssh/id_rsa*
  - eval `ssh-agent -s`
  - ssh-add ~/.ssh/id_rsa
  - git config --global user.name "John Doe"
  - git config --global user.email johndoe@example.com

script:
  - if [ $TARGET_ARCH == "x64" ]; then
      if [ -z "$TRAVIS_TAG" ] && [ $TRAVIS_OS_NAME == "linux" ] && [ $NODE_VERSION == "0.12" ]; then
        npm test && npm run cov && npm run coveralls;
      else
        npm test;
      fi
    else
      echo "Not running tests because the binary is not built for 64-bit systems";
    fi

after_success:
  - if [ -n "$TRAVIS_TAG" ]; then
      npm install -g node-pre-gyp;
      npm install -g aws-sdk;
      node lifecycleScripts/clean;
      node-pre-gyp package --target_arch=$TARGET_ARCH;
      node-pre-gyp publish --target_arch=$TARGET_ARCH;
    fi

  - if [ $TRAVIS_BRANCH == "master" ] && [ $TRAVIS_PULL_REQUEST == "false" ] && [ $TRAVIS_OS_NAME == "linux" ] && [ $NODE_VERSION == "4.1" ] && [ $TARGET_ARCH == "x64" ]; then
      .travis/deploy-docs.sh;
    fi

notifications:
  slack:
    secure: KglNSqZiid9YudCwkPFDh+sZfW5BwFlM70y67E4peHwwlbbV1sSBPHcs74ZHP/lqgEZ4hMv4N2NI58oYFD5/1a+tKIQP1TkdIMuq4j2LXheuirA2HDcydOVrsC8kRx5XFGKdVRg/uyX2dlRHcOWFhxrS6yc6IxtxYWlRTD2SmEc=

  webhooks:
    urls:
      - https://webhooks.gitter.im/e/cbafdb27ad32ba746a73
    on_success: always  # options: [always|never|change] default: always
    on_failure: always  # options: [always|never|change] default: always
    on_start: false     # default: false
