language: python

cache:
  directories:
  - lua_install
  - test/testing_cache-5.1
  - test/testing_cache-5.2
  - test/testing_cache-5.3
  - test/testing_cache-2.0
  - test/testing_cache-2.1
  - test/testing_server-5.1
  - test/testing_server-5.2
  - test/testing_server-5.3
  - test/testing_server-2.0
  - test/testing_server-2.1

matrix:
  include:
    - os: linux
      env:
        - LUA="lua=5.1"
    - os: linux
      env:
        - LUA="lua=5.2"
    - os: linux
      env:
        - LUA="lua=5.3"
    - os: linux
      env:
        - LUA="luajit=2.0"
    - os: linux
      env:
        - LUA="luajit=2.1"
    - os: osx
      language: generic
      env:
        - LUA="lua=5.1"
    - os: osx
      language: generic
      env:
        - LUA="lua=5.2"
    - os: osx
      language: generic
      env:
        - LUA="lua=5.3"
    - os: osx
      language: generic
      env:
        - LUA="luajit=2.0"
    - os: osx
      language: generic
      env:
        - LUA="luajit=2.1"


before_install:
  - if [ ! -f lua_install/bin/luarocks ]; then pip install hererocks; fi
  - if [ ! -f lua_install/bin/luarocks ]; then hererocks lua_install -r^ --$LUA; fi
  - export PATH=$PATH:$PWD/lua_install/bin # Add directory with all installed binaries to PATH

install:
  - if [ ! -f lua_install/bin/busted ]; then luarocks install busted; fi
  - if [ ! -f lua_install/bin/luacov ]; then luarocks install luacov; luarocks install luacov-coveralls; fi

script:
  - busted -o gtest --verbose -Xhelper travis
  - busted -o gtest --verbose -Xhelper travis,env=full

after_success:
  - luacov -c $TRAVIS_BUILD_DIR/test/luacov.config
  - cd $TRAVIS_BUILD_DIR/test/ && bash <(curl -s https://codecov.io/bash)
  - grep "Summary" -B1 -A1000 $TRAVIS_BUILD_DIR/test/luacov.report.out

notifications:
  email:
    on_success: change
    on_failure: change
  webhooks:
    urls:
      - https://webhooks.gitter.im/e/3320fc3f28abbb06e1d8
    on_success: change
    on_failure: always
    on_start: never