diff --git a/.travis.yml b/.travis.yml index 528bb2a..7fe3b3d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,81 @@ +#Based on https://github.com/pcolby/libqtaws/blob/master/.travis.yml +language: cpp + +os: + - linux + - osx + +dist: trusty + +compiler: + - clang + - gcc + +env: + matrix: + - QT=5 BREW= + - QT=5 BREW=ex PPA=ubuntu-sdk-team/ppa + - QT=51 BREW=ex PPA=beineri/opt-qt511-trusty + - QT=52 BREW=ex PPA=beineri/opt-qt521-trusty + - QT=53 BREW=ex PPA=beineri/opt-qt532-trusty + - QT=54 BREW=ex PPA=beineri/opt-qt542-trusty + - QT=55 BREW=@5.5 PPA=beineri/opt-qt551-trusty + - QT=56 BREW=ex PPA=beineri/opt-qt562-trusty + - QT=56 BREW=ex PPA=beineri/opt-qt563-trusty + - QT=57 BREW=@5.7 PPA=beineri/opt-qt571-trusty + - QT=58 BREW=ex PPA=beineri/opt-qt58-trusty + - QT=59 BREW=@5.9 PPA=beineri/opt-qt591-trusty + +matrix: + exclude: + - { os: osx, env: QT=5 BREW=ex PPA=ubuntu-sdk-team/ppa } + - { os: osx, env: QT=51 BREW=ex PPA=beineri/opt-qt511-trusty } + - { os: osx, env: QT=52 BREW=ex PPA=beineri/opt-qt521-trusty } + - { os: osx, env: QT=53 BREW=ex PPA=beineri/opt-qt532-trusty } + - { os: osx, env: QT=54 BREW=ex PPA=beineri/opt-qt542-trusty } + - { os: osx, env: QT=56 BREW=ex PPA=beineri/opt-qt562-trusty } + - { os: osx, env: QT=56 BREW=ex PPA=beineri/opt-qt563-trusty } + - { os: osx, env: QT=58 BREW=ex PPA=beineri/opt-qt58-trusty } + +addons: + coverity_scan: + project: + name: "HamedMasafi/Nut" + description: "Build submitted via Travis CI" + # notification_email: em@h + build_command_prepend: > + cp -a "$TRAVIS_BUILD_DIR" "$TRAVIS_BUILD_DIR-scan" && + pushd "$TRAVIS_BUILD_DIR-scan" && + qmake -qt=qt5 -Wall -Wlogic -Wparser CONFIG+=debug_and_release + build_command: make all + #branch_pattern: coverity + before_install: - - sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa - - sudo apt-get update -qq - - sudo apt-get install qtbase5-dev qtdeclarative5-dev libqt5webkit5-dev libsqlite3-dev - - sudo apt-get install qt5-default qttools5-dev-tools + - '[[ "$TRAVIS_OS_NAME" != linux || -z "$PPA" ]] || sudo add-apt-repository -y ppa:$PPA' + - '[ "$TRAVIS_OS_NAME" != linux ] || sudo apt-get -qy update' + - '[ "$TRAVIS_OS_NAME" != osx ] || brew update' + +install: + - '[ "$TRAVIS_OS_NAME" != linux ] || sudo apt-get -qy install cppcheck doxygen graphviz lcov' + - '[[ "$TRAVIS_OS_NAME" != linux || "$PPA" != */opt-* ]] || sudo apt-get -qy install qt${QT}base qt${QT}xmlpatterns' + - '[[ "$TRAVIS_OS_NAME" != linux || "$PPA" == */opt-* ]] || sudo apt-get -qy install qt5-qmake qtbase5-dev libqt5xmlpatterns5-dev' + - '[ "$TRAVIS_OS_NAME" != linux ] || gem install lcoveralls' + - '[ "$TRAVIS_OS_NAME" != osx ] || brew install cppcheck doxygen graphviz qt$BREW' + - '[ "$TRAVIS_OS_NAME" != osx ] || brew link --force qt$BREW' + - qmake -v + +before_script: + - cppcheck --error-exitcode=1 --quiet + . + - '[[ "$TRAVIS_OS_NAME" != linux || "$CXX" != clang++ ]] || export QMAKESPEC=linux-clang' + - '[[ "$TRAVIS_OS_NAME" != linux || "$CXX" != g++ ]] || export QMAKESPEC=linux-g++' + - '[[ "$TRAVIS_OS_NAME" != osx || "$CXX" != clang++ ]] || export QMAKESPEC=macx-clang' + - '[[ "$TRAVIS_OS_NAME" != osx || "$CXX" != g++ ]] || export QMAKESPEC=macx-g++' + - '[[ "$TRAVIS_OS_NAME" != linux || "$PPA" != */opt-* ]] || . /opt/qt$QT/bin/qt$QT-env.sh' + - '[[ "$TRAVIS_OS_NAME" != linux || "$PPA" == */opt-* ]] || export QT_SELECT=qt5' + - mkdir -p "$TRAVIS_BUILD_DIR-build" + - qmake -o "$TRAVIS_BUILD_DIR-build" -r -Wall -Wlogic -Wparser CONFIG+=debug_and_release "$TRAVIS_BUILD_DIR" script: - - qmake nut.pro - - make + - make -C "$TRAVIS_BUILD_DIR-build" all + - make -C "$TRAVIS_BUILD_DIR-build" -j2 check TESTARGS=-silent