sudo: required
language: node_js
node_js:
  - "6.1"

branches:  # pushes only get built for master
  only:
    - master

env:
  global:
    # compiler command for Travis
    - CXX=g++-4.8
    # build number used by blt pipeline
    - CI_BUILD_NUMBER=$TRAVIS_BUILD_NUMBER

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8

before_install:
    - echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc

after_success:
  - git config --global user.email "builds@travis-ci.com"
  - git config --global user.name "Travis CI"
  - >
    [ "${TRAVIS_BRANCH}" = "master" ] && [ "${TRAVIS_PULL_REQUEST}" = "false" ] &&
    export GIT_TAG=$(make version) ||
    export GIT_TAG=$(make version)-beta
  - >
    [ "${TRAVIS_BRANCH}" = "master" ] && [ "${TRAVIS_PULL_REQUEST}" = "false" ] &&
    export NPM_TAG=latest ||
    export NPM_TAG=beta
  - echo "GIT_TAG=$GIT_TAG"
  - echo "NPM_TAG=$NPM_TAG"
  - >
    [ "${TRAVIS_BRANCH}" = "master" ] &&
    git commit -am "Commit .npmrc in tag pushed to npm" &&
    npm version $GIT_TAG -m "Version $GIT_TAG built by Travis CI - https://travis-ci.com/$TRAVIS_REPO_SLUG/builds/$TRAVIS_JOB_ID" &&
    git push -q https://$GITHUB_USER:$GITHUB_TOKEN@github.com/$TRAVIS_REPO_SLUG --tags &&
    npm publish --tag $NPM_TAG ||
    echo "skipping versioning"

notifications:
  # slack integration
  slack:
    # encrypted token for the meetuphq slack channel
    secure: J7M6eSgKWcbMqFs9Z2wSiHemn/IGOj8D/iB6AB2WXPYxr8+HQnzE6L96lmdwwSHNscB0tbg7y7xsMJHh+qeiiFgrMTAP7SbbT0kV9JdFWEJs4mwZtMBeQXbyfIJ/6HSFAsAjOxBgyhNnmx6PYKWKc+HGVcRui4dWJQRO24Nmfup93gJon63U/KsdXyvTpVN/dZ2EneQzhh/Evg0fXRxo9ETeqfeJ7KNTc0FvklVYdMe0d9cPKZ7/22qoYM7KKELE5ER/pDEeU42ttz4axm1l7WQAddDTQElH1oZP46Eq62Adu244bSuQUBIRwSBJOjUMnIzxn+2s3u4BfeSSGm9d8X8PD46fcaIKbIQaYOnlL9IK4s8jUhv1j0/qEHm3X5OJ7nrHM1FEmlY8R/lgCPyFI6Rr1z722n2iCxKrsasqFaF4bNQjp1L1hHmuFS1bAsGYouc6IRYVLntl0KHI5RpLWxCf6s3kaYHRb8sKcrZTXK+lf/Hlk0iWfXK+SU5vdKtjSrIJusWBU5AmcDKJbjTBbi85/zxJ86jYJy0WN2HsyR6K2mm+iGwTcBD52Ut/7J3PcHgJyp9kq+NQIxyuyk1PmGFWwy6N+xpirlFo7ztgSSEa2teD0gb9Feh1XaLiuAXtmMyaO8esAbXqygweLJGSXoTQgvjJ1Bvgb5GJSej0LME=

    # dont notify successful builds
    on_success: never

    # always notify build failures
    on_failure: always

