## Doesn't appear to do anything useful. language: cpp ## Notifications ## The default is to send email on all failures and changed success ## Adding other notifiers (like IRC) does not disable the email one notifications: ## This is, in fact, the default email setting so it is unnecessary. ## It would probably be too annoying to set on_success: always email: on_success: changed on_failure: always ## Are we going to want this on or off? irc: channels: "chat.freenode.net#tmwa" on_success: always on_failure: always use_notice: true ## Commands before installing prerequisites before_install: export CC=${REAL_CC} CXX=${REAL_CXX} ## Install prerequisites install: # if > or | folding is used, error # but YAML folds by default on this, so it works (I hope) - if [ -n "$PPA" ]; then sudo add-apt-repository --yes $PPA; fi - sudo apt-get update -qq - sudo apt-get install -qq $PACKAGE - sudo apt-get install -qq libgtest-dev valgrind - make --version ## Do something before the main test script before_script: - if [ $PACKAGE = clang-3.1 ]; then wget http://clang.llvm.org/libstdc++4.6-clang11.patch; sudo patch /usr/include/c++/4.6/type_traits < libstdc++4.6-clang11.patch; fi ## Main test script script: - mkdir build - cd build - git init - ../configure --dev CPPFLAGS=-DQUIET `! [[ $CXX =~ clang* ]] || echo --disable-abi6` - make -R -k -j2 - make -R -k -j2 test TESTER='valgrind --error-exitcode=1 --track-fds=yes' ## Do something after the main test script after_script: - make -R -k -j2 format - git --git-dir=../.git --work-tree=.. diff --exit-code - make -R -k -j2 dist ### The rest of the file creates a build matrix ### containing gcc-4.6 through gcc-4.8 and clang-3.1 through clang-3.3 ## This doesn't work - travis defaults to plain gcc if unknown ## http://github.com/travis-ci/travis-ci/issues/979 #compiler: # - gcc-4.6 # - gcc-4.7 # - gcc-4.8 # - clang-3.1 # - clang-3.2 # - clang-3.3 env: - ignore=this matrix: allow_failures: - compiler: clang env: REAL_CC=clang-3.1 REAL_CXX=clang++-3.1 PPA=ppa:h-rayflood/llvm PACKAGE=clang-3.1 exclude: - env: ignore=this include: - compiler: clang env: REAL_CC=clang-3.1 REAL_CXX=clang++-3.1 PPA=ppa:h-rayflood/llvm PACKAGE=clang-3.1 - compiler: clang env: REAL_CC=clang-3.2 REAL_CXX=clang++-3.2 PPA=ppa:h-rayflood/llvm PACKAGE=clang-3.2 - compiler: clang env: REAL_CC=clang-3.3 REAL_CXX=clang++-3.3 PPA=ppa:h-rayflood/llvm PACKAGE=clang-3.3 - compiler: clang env: REAL_CC=clang-3.4 REAL_CXX=clang++-3.4 PPA=ppa:h-rayflood/llvm PACKAGE=clang-3.4 - compiler: gcc env: REAL_CC=gcc-4.6 REAL_CXX=g++-4.6 PPA= PACKAGE=g++-4.6 - compiler: gcc env: REAL_CC=gcc-4.7 REAL_CXX=g++-4.7 PPA=ppa:ubuntu-toolchain-r/test PACKAGE=g++-4.7 - compiler: gcc env: REAL_CC=gcc-4.8 REAL_CXX=g++-4.8 PPA=ppa:ubuntu-toolchain-r/test PACKAGE=g++-4.8 # everything that was pushed to stable was already on 'master', except # the version change and some doc changes. branches: except: - stable