| sudo: false |
| |
| branches: |
| only: |
| - master |
| |
| os: |
| - linux |
| - osx |
| |
| compiler: |
| - gcc |
| - clang |
| |
| env: |
| - MESON_ARGS="" |
| - MESON_ARGS="--unity=on" |
| |
| language: |
| - cpp |
| |
| services: |
| - docker |
| |
| matrix: |
| exclude: |
| # On OS X gcc is just a wrapper around clang, so don't waste time testing that |
| - os: osx |
| compiler: gcc |
| |
| before_install: |
| - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi |
| - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ninja python3; fi |
| - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull jpakkane/mesonci:zesty; fi |
| - pip3 install codecov |
| - mkdir .coverage |
| |
| # We need to copy the current checkout inside the Docker container, |
| # because it has the MR id to be tested checked out. |
| |
| script: |
| - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo FROM jpakkane/mesonci:zesty > Dockerfile; fi |
| - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo ADD . /root >> Dockerfile; fi |
| - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker build -t withgit .; fi |
| - | |
| if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then |
| ci_env=`bash <(curl -s https://codecov.io/env)` |
| docker run $ci_env -v ${PWD}/.coverage:/root/.coverage \ |
| withgit \ |
| /bin/sh -c "cd /root && CC=$CC CXX=$CXX OBJC=$CC OBJCXX=$CXX ./run_tests.py --cov -- $MESON_ARGS && chmod -R a+rwX .coverage" |
| fi |
| - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then SDKROOT=$(xcodebuild -version -sdk macosx Path) OBJC=$CC OBJCXX=$CXX ./run_tests.py --cov --backend=ninja -- $MESON_ARGS ; fi |
| |
| after_success: |
| - coverage3 combine |
| - codecov -n "${TRAVIS_OS_NAME}-${CC}-{$(echo ${MESON_ARGS} | sed -e 's/^--//g' -e 's/ --/,/g')}" |