summaryrefslogblamecommitdiff
path: root/.travis.yml
blob: d8b7b99c0f2212a929ee0b1681052313f050dbec (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                        
             











                                                                      
                                        

                      
                    

                                           






                                                         
                                                                      



                                                                    





                                             
                                         





                                           
                         
                                                      
               

                                          
             
                                                                  

                                               
                                                    

                                                              


                   


         

                                                   
                                                
                                                    
    

                    
                    
                    









                           
## 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: git submodule update --init --recursive

## Install prerequisites
install:
# if > or | folding is used, error
# but YAML folds by default on this, so it works (I hope)
  -
    if [ "${REAL_CXX}" = "g++-4.7" ] || [ "${REAL_CXX}" = "g++-4.8" ];
    then
        sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test &&
        sudo apt-get update -qq;
    fi
  -
    if ! [ "${REAL_CXX}" = "clang++" ];
    then
        sudo apt-get install -qq ${REAL_CXX};
        sudo apt-get update -qq;
    fi
  - sudo apt-get install -qq libgtest-dev

## Do something before the main test script
# before_script: ...

## Main test script
script:
  - ${REAL_CXX} --version
  - ./configure --dev CXX=${REAL_CXX} CPPFLAGS=-DQUIET
  - make -k -j2

## Do something after the main test script
after_script:
  - make test TESTER='valgrind --error-exitcode=1 --track-fds=yes'

### The rest of the file creates a build matrix
### containing gcc-4.6 through gcc-4.7 and clang-3.1

## This doesn't work - travis defaults to plain gcc if unknown
# compiler: gcc-4.6
# compiler: gcc-4.7
# compiler: clang
compiler:
  - gcc
  - clang

## Environment variables to expand the build matrix
## Needed because 'compiler: gcc' overwrites CXX
## https://github.com/travis-ci/travis-ci/issues/979
env:
  - REAL_CXX=g++-4.6
  - REAL_CXX=g++-4.7
  - REAL_CXX=g++-4.8
  - REAL_CXX=clang++
matrix:
  exclude:
    - compiler: gcc
      env: REAL_CXX=clang++
    - compiler: clang
      env: REAL_CXX=g++-4.6
    - compiler: clang
      env: REAL_CXX=g++-4.7
    - compiler: clang
      env: REAL_CXX=g++-4.8