xref: /openbmc/qemu/.travis.yml (revision fcf5ef2a)
1sudo: false
2language: c
3python:
4  - "2.4"
5compiler:
6  - gcc
7  - clang
8cache: ccache
9addons:
10  apt:
11    packages:
12      # Build dependencies
13      - libaio-dev
14      - libattr1-dev
15      - libbrlapi-dev
16      - libcap-ng-dev
17      - libgnutls-dev
18      - libgtk-3-dev
19      - libiscsi-dev
20      - liblttng-ust-dev
21      - libnfs-dev
22      - libncurses5-dev
23      - libnss3-dev
24      - libpixman-1-dev
25      - libpng12-dev
26      - librados-dev
27      - libsdl1.2-dev
28      - libseccomp-dev
29      - libspice-protocol-dev
30      - libspice-server-dev
31      - libssh2-1-dev
32      - liburcu-dev
33      - libusb-1.0-0-dev
34      - libvte-2.90-dev
35      - sparse
36      - uuid-dev
37
38# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
39# to prevent IRC notifications from forks. This was created using:
40# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
41notifications:
42  irc:
43    channels:
44      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
45    on_success: change
46    on_failure: always
47env:
48  global:
49    - TEST_CMD="make check"
50  matrix:
51    - CONFIG=""
52    - CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
53    - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
54    - CONFIG="--enable-modules"
55    - CONFIG="--with-coroutine=ucontext"
56    - CONFIG="--with-coroutine=sigaltstack"
57git:
58  # we want to do this ourselves
59  submodules: false
60before_install:
61  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
62  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
63  - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
64  - git submodule update --init --recursive
65before_script:
66  - ./configure ${CONFIG}
67script:
68  - make -j3 && ${TEST_CMD}
69matrix:
70  include:
71    # gprof/gcov are GCC features
72    - env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
73      compiler: gcc
74    # We manually include builds which we disable "make check" for
75    - env: CONFIG="--enable-debug --enable-tcg-interpreter"
76           TEST_CMD=""
77      compiler: gcc
78    - env: CONFIG="--enable-trace-backends=simple"
79           TEST_CMD=""
80      compiler: gcc
81    - env: CONFIG="--enable-trace-backends=ftrace"
82           TEST_CMD=""
83      compiler: gcc
84    - env: CONFIG="--enable-trace-backends=ust"
85           TEST_CMD=""
86      compiler: gcc
87    - env: CONFIG="--with-coroutine=gthread"
88           TEST_CMD=""
89      compiler: gcc
90    - env: CONFIG=""
91      os: osx
92      compiler: clang
93    # Plain Trusty Build
94    - env: CONFIG=""
95      sudo: required
96      addons:
97      dist: trusty
98      compiler: gcc
99      before_install:
100        - sudo apt-get update -qq
101        - sudo apt-get build-dep -qq qemu
102        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
103        - git submodule update --init --recursive
104    # Using newer GCC with sanitizers
105    - addons:
106        apt:
107          sources:
108            # PPAs for newer toolchains
109            - ubuntu-toolchain-r-test
110          packages:
111            # Extra toolchains
112            - gcc-5
113            - g++-5
114            # Build dependencies
115            - libaio-dev
116            - libattr1-dev
117            - libbrlapi-dev
118            - libcap-ng-dev
119            - libgnutls-dev
120            - libgtk-3-dev
121            - libiscsi-dev
122            - liblttng-ust-dev
123            - libnfs-dev
124            - libncurses5-dev
125            - libnss3-dev
126            - libpixman-1-dev
127            - libpng12-dev
128            - librados-dev
129            - libsdl1.2-dev
130            - libseccomp-dev
131            - libspice-protocol-dev
132            - libspice-server-dev
133            - libssh2-1-dev
134            - liburcu-dev
135            - libusb-1.0-0-dev
136            - libvte-2.90-dev
137            - sparse
138            - uuid-dev
139      language: generic
140      compiler: none
141      env:
142        - COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
143        - CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user --with-coroutine=gthread"
144        - TEST_CMD=""
145      before_script:
146        - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log
147