xref: /openbmc/qemu/.travis.yml (revision 80adf54e)
1sudo: false
2language: c
3python:
4  - "2.4"
5compiler:
6  - gcc
7cache: ccache
8addons:
9  apt:
10    packages:
11      # Build dependencies
12      - libaio-dev
13      - libattr1-dev
14      - libbrlapi-dev
15      - libcap-ng-dev
16      - libgnutls-dev
17      - libgtk-3-dev
18      - libiscsi-dev
19      - liblttng-ust-dev
20      - libnfs-dev
21      - libncurses5-dev
22      - libnss3-dev
23      - libpixman-1-dev
24      - libpng12-dev
25      - librados-dev
26      - libsdl1.2-dev
27      - libseccomp-dev
28      - libspice-protocol-dev
29      - libspice-server-dev
30      - libssh2-1-dev
31      - liburcu-dev
32      - libusb-1.0-0-dev
33      - libvte-2.90-dev
34      - sparse
35      - uuid-dev
36
37# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
38# to prevent IRC notifications from forks. This was created using:
39# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
40notifications:
41  irc:
42    channels:
43      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
44    on_success: change
45    on_failure: always
46env:
47  global:
48    - TEST_CMD="make check"
49    - MAKEFLAGS="-j3"
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 ${MAKEFLAGS} && ${TEST_CMD}
69matrix:
70  include:
71    # Test with CLang for compile portability
72    - env: CONFIG=""
73      compiler: clang
74    # gprof/gcov are GCC features
75    - env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
76      compiler: gcc
77    # We manually include builds which we disable "make check" for
78    - env: CONFIG="--enable-debug --enable-tcg-interpreter"
79           TEST_CMD=""
80      compiler: gcc
81    - env: CONFIG="--enable-trace-backends=simple"
82           TEST_CMD=""
83      compiler: gcc
84    - env: CONFIG="--enable-trace-backends=ftrace"
85           TEST_CMD=""
86      compiler: gcc
87    - env: CONFIG="--enable-trace-backends=ust"
88           TEST_CMD=""
89      compiler: gcc
90    - env: CONFIG="--disable-tcg"
91           TEST_CMD=""
92      compiler: gcc
93    - env: CONFIG=""
94      os: osx
95      compiler: clang
96    # Plain Trusty System Build
97    - env: CONFIG="--disable-linux-user"
98      sudo: required
99      addons:
100      dist: trusty
101      compiler: gcc
102      before_install:
103        - sudo apt-get update -qq
104        - sudo apt-get build-dep -qq qemu
105        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
106        - git submodule update --init --recursive
107    # Plain Trusty Linux User Build
108    - env: CONFIG="--disable-system"
109      sudo: required
110      addons:
111      dist: trusty
112      compiler: gcc
113      before_install:
114        - sudo apt-get update -qq
115        - sudo apt-get build-dep -qq qemu
116        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
117        - git submodule update --init --recursive
118    # Trusty System build with latest stable clang
119    - sudo: required
120      addons:
121      dist: trusty
122      language: generic
123      compiler: none
124      env:
125        - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
126        - CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
127      before_install:
128        - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
129        - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
130        - sudo apt-get update -qq
131        - sudo apt-get install -qq -y clang-3.9
132        - sudo apt-get build-dep -qq qemu
133        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
134        - git submodule update --init --recursive
135      before_script:
136        - ./configure ${CONFIG} || cat config.log
137    # Trusty Linux User build with latest stable clang
138    - sudo: required
139      addons:
140      dist: trusty
141      language: generic
142      compiler: none
143      env:
144        - COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
145        - CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
146      before_install:
147        - wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
148        - sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
149        - sudo apt-get update -qq
150        - sudo apt-get install -qq -y clang-3.9
151        - sudo apt-get build-dep -qq qemu
152        - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
153        - git submodule update --init --recursive
154      before_script:
155        - ./configure ${CONFIG} || cat config.log
156    # Using newer GCC with sanitizers
157    - addons:
158        apt:
159          sources:
160            # PPAs for newer toolchains
161            - ubuntu-toolchain-r-test
162          packages:
163            # Extra toolchains
164            - gcc-5
165            - g++-5
166            # Build dependencies
167            - libaio-dev
168            - libattr1-dev
169            - libbrlapi-dev
170            - libcap-ng-dev
171            - libgnutls-dev
172            - libgtk-3-dev
173            - libiscsi-dev
174            - liblttng-ust-dev
175            - libnfs-dev
176            - libncurses5-dev
177            - libnss3-dev
178            - libpixman-1-dev
179            - libpng12-dev
180            - librados-dev
181            - libsdl1.2-dev
182            - libseccomp-dev
183            - libspice-protocol-dev
184            - libspice-server-dev
185            - libssh2-1-dev
186            - liburcu-dev
187            - libusb-1.0-0-dev
188            - libvte-2.90-dev
189            - sparse
190            - uuid-dev
191      language: generic
192      compiler: none
193      env:
194        - COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
195        - CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user"
196        - TEST_CMD=""
197      before_script:
198        - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log
199