xref: /openbmc/qemu/.travis.yml (revision df2bb38e)
195310576SAlex Bennée# The current Travis default is a VM based 16.04 Xenial on GCE
295310576SAlex Bennée# Additional builds with specific requirements for a full VM need to
395310576SAlex Bennée# be added as additional matrix: entries later on
495310576SAlex Bennéedist: xenial
5fe863ab9SAlex Bennéelanguage: c
6fe863ab9SAlex Bennéecompiler:
7fe863ab9SAlex Bennée  - gcc
84c33d42dSAlex Bennéecache: ccache
9197be697SDaniel P. Berrangé
10197be697SDaniel P. Berrangé
11692d162cSAlex Bennéeaddons:
12692d162cSAlex Bennée  apt:
13692d162cSAlex Bennée    packages:
1432265288SAlex Bennée      # Build dependencies
15692d162cSAlex Bennée      - libaio-dev
16692d162cSAlex Bennée      - libattr1-dev
17692d162cSAlex Bennée      - libbrlapi-dev
18692d162cSAlex Bennée      - libcap-ng-dev
197524a39dSPhilippe Mathieu-Daudé      - libgcc-4.8-dev
20692d162cSAlex Bennée      - libgnutls-dev
21692d162cSAlex Bennée      - libgtk-3-dev
22692d162cSAlex Bennée      - libiscsi-dev
23692d162cSAlex Bennée      - liblttng-ust-dev
24692d162cSAlex Bennée      - libncurses5-dev
25d83414e1SMarc-André Lureau      - libnfs-dev
26692d162cSAlex Bennée      - libnss3-dev
27692d162cSAlex Bennée      - libpixman-1-dev
28692d162cSAlex Bennée      - libpng12-dev
29692d162cSAlex Bennée      - librados-dev
30692d162cSAlex Bennée      - libsdl1.2-dev
31692d162cSAlex Bennée      - libseccomp-dev
32692d162cSAlex Bennée      - libspice-protocol-dev
33692d162cSAlex Bennée      - libspice-server-dev
34692d162cSAlex Bennée      - libssh2-1-dev
35692d162cSAlex Bennée      - liburcu-dev
36692d162cSAlex Bennée      - libusb-1.0-0-dev
3795310576SAlex Bennée      - libvte-2.91-dev
38692d162cSAlex Bennée      - sparse
39692d162cSAlex Bennée      - uuid-dev
400708e647SAlex Bennée      - gcovr
4191fa7dd1SAlex Bennée  homebrew:
4291fa7dd1SAlex Bennée    packages:
4391fa7dd1SAlex Bennée      - glib
4491fa7dd1SAlex Bennée      - pixman
45692d162cSAlex Bennée
46197be697SDaniel P. Berrangé
47cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
48cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using:
49cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
5039d16d29SAlex Bennéenotifications:
5139d16d29SAlex Bennée  irc:
5239d16d29SAlex Bennée    channels:
53cb4c2536SPranith Kumar      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
5439d16d29SAlex Bennée    on_success: change
5539d16d29SAlex Bennée    on_failure: always
56197be697SDaniel P. Berrangé
57197be697SDaniel P. Berrangé
58fe863ab9SAlex Bennéeenv:
59fe863ab9SAlex Bennée  global:
60ebf2ff65SPhilippe Mathieu-Daudé    - SRC_DIR="."
61ebf2ff65SPhilippe Mathieu-Daudé    - BUILD_DIR="."
62570f3c77SAlex Bennée    - BASE_CONFIG="--disable-docs --disable-tools"
63e2576f9bSDaniel P. Berrangé    - TEST_CMD="make check -j3 V=1"
64197be697SDaniel P. Berrangé
65197be697SDaniel P. Berrangé
66cb021cfeSAlex Bennéegit:
67cb021cfeSAlex Bennée  # we want to do this ourselves
68cb021cfeSAlex Bennée  submodules: false
69197be697SDaniel P. Berrangé
70197be697SDaniel P. Berrangé
71eebf2940SAlex Bennéebefore_script:
72ebf2ff65SPhilippe Mathieu-Daudé  - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
73570f3c77SAlex Bennée  - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
74eebf2940SAlex Bennéescript:
759b29d049SDaniel P. Berrangé  - make -j3 && ${TEST_CMD}
76197be697SDaniel P. Berrangé
77197be697SDaniel P. Berrangé
78fe863ab9SAlex Bennéematrix:
79fe863ab9SAlex Bennée  include:
80c21d7efcSDaniel P. Berrangé    - env:
81c21d7efcSDaniel P. Berrangé        - CONFIG="--disable-system"
823e094234SDaniel P. Berrangé
833e094234SDaniel P. Berrangé
84c21d7efcSDaniel P. Berrangé    - env:
85c21d7efcSDaniel P. Berrangé        - CONFIG="--disable-user"
863e094234SDaniel P. Berrangé
873e094234SDaniel P. Berrangé
88*df2bb38eSAlex Bennée    # Just build tools and run minimal unit and softfloat checks
89*df2bb38eSAlex Bennée    - env:
90*df2bb38eSAlex Bennée        - BASE_CONFIG="--enable-tools"
91*df2bb38eSAlex Bennée        - CONFIG="--disable-user --disable-system"
92*df2bb38eSAlex Bennée        - TEST_CMD="make check-unit check-softfloat -j3"
93*df2bb38eSAlex Bennée
94c21d7efcSDaniel P. Berrangé    - env:
954e6e7df6SAlex Bennée        - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
964e6e7df6SAlex Bennée
974e6e7df6SAlex Bennée
984e6e7df6SAlex Bennée    # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions
994e6e7df6SAlex Bennée    - env:
1004e6e7df6SAlex Bennée        - CONFIG="--enable-debug-tcg --disable-system"
1013e094234SDaniel P. Berrangé
1023e094234SDaniel P. Berrangé
103c21d7efcSDaniel P. Berrangé    - env:
1044aeb5d24SDr. David Alan Gilbert        - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-user --disable-replication"
1053e094234SDaniel P. Berrangé
1063e094234SDaniel P. Berrangé
1072f6c2526SAlex Bennée    # Module builds are mostly of interest to major distros
108c21d7efcSDaniel P. Berrangé    - env:
1092f6c2526SAlex Bennée        - CONFIG="--enable-modules --target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
1103e094234SDaniel P. Berrangé
1113e094234SDaniel P. Berrangé
112f3908ff7SAlex Bennée    # Alternate coroutines implementations are only really of interest to KVM users
113f3908ff7SAlex Bennée    # However we can't test against KVM on Travis so we can only run unit tests
114c21d7efcSDaniel P. Berrangé    - env:
115f3908ff7SAlex Bennée        - CONFIG="--with-coroutine=ucontext --disable-tcg"
116f3908ff7SAlex Bennée        - TEST_CMD="make check-unit -j3 V=1"
1173e094234SDaniel P. Berrangé
1183e094234SDaniel P. Berrangé
119c21d7efcSDaniel P. Berrangé    - env:
120f3908ff7SAlex Bennée        - CONFIG="--with-coroutine=sigaltstack --disable-tcg"
121f3908ff7SAlex Bennée        - TEST_CMD="make check-unit -j3 V=1"
1223e094234SDaniel P. Berrangé
1233e094234SDaniel P. Berrangé
124956d4506SAlex Bennée    # Check we can build docs and tools (out of tree)
125570f3c77SAlex Bennée    - env:
126956d4506SAlex Bennée        - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
127570f3c77SAlex Bennée        - BASE_CONFIG="--enable-tools --enable-docs"
128570f3c77SAlex Bennée        - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
129570f3c77SAlex Bennée      addons:
130570f3c77SAlex Bennée        apt:
131570f3c77SAlex Bennée          packages:
132570f3c77SAlex Bennée            - python-sphinx
133570f3c77SAlex Bennée            - texinfo
134570f3c77SAlex Bennée            - perl
135570f3c77SAlex Bennée
136197be697SDaniel P. Berrangé
137ae6d692dSAlex Bennée    # Test with Clang for compile portability (Travis uses clang-5.0)
138c21d7efcSDaniel P. Berrangé    - env:
139c21d7efcSDaniel P. Berrangé        - CONFIG="--disable-system"
140ae6d692dSAlex Bennée      compiler: clang
141197be697SDaniel P. Berrangé
142197be697SDaniel P. Berrangé
143c21d7efcSDaniel P. Berrangé    - env:
144c21d7efcSDaniel P. Berrangé        - CONFIG="--disable-user"
145d9a6b013SDaniel P. Berrange      compiler: clang
146197be697SDaniel P. Berrangé
147197be697SDaniel P. Berrangé
1486c933291SAlex Bennée    # gprof/gcov are GCC features
149c21d7efcSDaniel P. Berrangé    - env:
150c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
1510708e647SAlex Bennée      after_success:
1520708e647SAlex Bennée        - ${SRC_DIR}/scripts/travis/coverage-summary.sh
153197be697SDaniel P. Berrangé
154197be697SDaniel P. Berrangé
1556c933291SAlex Bennée    # We manually include builds which we disable "make check" for
156c21d7efcSDaniel P. Berrangé    - env:
15720885b5bSPaolo Bonzini        - CONFIG="--without-default-devices"
15820885b5bSPaolo Bonzini        - TEST_CMD=""
15920885b5bSPaolo Bonzini
16020885b5bSPaolo Bonzini
16120885b5bSPaolo Bonzini    # We manually include builds which we disable "make check" for
16220885b5bSPaolo Bonzini    - env:
163c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-debug --enable-tcg-interpreter"
164c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
165197be697SDaniel P. Berrangé
166197be697SDaniel P. Berrangé
167f8309de9SAlex Bennée    # We don't need to exercise every backend with every front-end
168c21d7efcSDaniel P. Berrangé    - env:
169c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
170c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
171197be697SDaniel P. Berrangé
172197be697SDaniel P. Berrangé
173c21d7efcSDaniel P. Berrangé    - env:
174c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
175c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
176197be697SDaniel P. Berrangé
177197be697SDaniel P. Berrangé
178c21d7efcSDaniel P. Berrangé    - env:
179c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
180c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
181197be697SDaniel P. Berrangé
182197be697SDaniel P. Berrangé
183adcf9683SAlex Bennée    # MacOSX builds
184c21d7efcSDaniel P. Berrangé    - env:
185c21d7efcSDaniel P. Berrangé        - CONFIG="--target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
1861d002037SAlex Bennée      os: osx
187adcf9683SAlex Bennée      osx_image: xcode9.4
188adcf9683SAlex Bennée      compiler: clang
189197be697SDaniel P. Berrangé
190197be697SDaniel P. Berrangé
191cd7507cbSPhilippe Mathieu-Daudé    - env:
192cd7507cbSPhilippe Mathieu-Daudé        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
193cd7507cbSPhilippe Mathieu-Daudé      os: osx
194cd7507cbSPhilippe Mathieu-Daudé      osx_image: xcode10.2
195cd7507cbSPhilippe Mathieu-Daudé      compiler: clang
196cd7507cbSPhilippe Mathieu-Daudé
197cd7507cbSPhilippe Mathieu-Daudé
198ae6d692dSAlex Bennée    # Python builds
199c21d7efcSDaniel P. Berrangé    - env:
200c21d7efcSDaniel P. Berrangé        - CONFIG="--target-list=x86_64-softmmu"
20153fefde4SCleber Rosa      language: python
2028e73a3c5SDaniel P. Berrange      python:
20353fefde4SCleber Rosa        - "3.4"
204197be697SDaniel P. Berrangé
205197be697SDaniel P. Berrangé
206c21d7efcSDaniel P. Berrangé    - env:
207c21d7efcSDaniel P. Berrangé        - CONFIG="--target-list=x86_64-softmmu"
20853fefde4SCleber Rosa      language: python
2098e73a3c5SDaniel P. Berrange      python:
2108e73a3c5SDaniel P. Berrange        - "3.6"
211197be697SDaniel P. Berrangé
212197be697SDaniel P. Berrangé
213aa983ff6SCleber Rosa    # Acceptance (Functional) tests
214c21d7efcSDaniel P. Berrangé    - env:
215c21d7efcSDaniel P. Berrangé        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu"
216c21d7efcSDaniel P. Berrangé        - TEST_CMD="make AVOCADO_SHOW=app check-acceptance"
217aa983ff6SCleber Rosa      addons:
218aa983ff6SCleber Rosa        apt:
219aa983ff6SCleber Rosa          packages:
220aa983ff6SCleber Rosa            - python3-pip
22195310576SAlex Bennée            - python3.5-venv
22232265288SAlex Bennée    # Using newer GCC with sanitizers
22332265288SAlex Bennée    - addons:
22432265288SAlex Bennée        apt:
225ac07ffc6SAlex Bennée          update: true
22632265288SAlex Bennée          sources:
22732265288SAlex Bennée            # PPAs for newer toolchains
22832265288SAlex Bennée            - ubuntu-toolchain-r-test
22932265288SAlex Bennée          packages:
23032265288SAlex Bennée            # Extra toolchains
231ac07ffc6SAlex Bennée            - gcc-7
232ac07ffc6SAlex Bennée            - g++-7
23332265288SAlex Bennée            # Build dependencies
23432265288SAlex Bennée            - libaio-dev
23532265288SAlex Bennée            - libattr1-dev
23632265288SAlex Bennée            - libbrlapi-dev
23732265288SAlex Bennée            - libcap-ng-dev
23832265288SAlex Bennée            - libgnutls-dev
23932265288SAlex Bennée            - libgtk-3-dev
24032265288SAlex Bennée            - libiscsi-dev
24132265288SAlex Bennée            - liblttng-ust-dev
24232265288SAlex Bennée            - libnfs-dev
24332265288SAlex Bennée            - libncurses5-dev
24432265288SAlex Bennée            - libnss3-dev
24532265288SAlex Bennée            - libpixman-1-dev
24632265288SAlex Bennée            - libpng12-dev
24732265288SAlex Bennée            - librados-dev
24832265288SAlex Bennée            - libsdl1.2-dev
24932265288SAlex Bennée            - libseccomp-dev
25032265288SAlex Bennée            - libspice-protocol-dev
25132265288SAlex Bennée            - libspice-server-dev
25232265288SAlex Bennée            - libssh2-1-dev
25332265288SAlex Bennée            - liburcu-dev
25432265288SAlex Bennée            - libusb-1.0-0-dev
25595310576SAlex Bennée            - libvte-2.91-dev
25632265288SAlex Bennée            - sparse
25732265288SAlex Bennée            - uuid-dev
25832265288SAlex Bennée      language: generic
25932265288SAlex Bennée      compiler: none
26032265288SAlex Bennée      env:
261ac07ffc6SAlex Bennée        - COMPILER_NAME=gcc CXX=g++-7 CC=gcc-7
262ac07ffc6SAlex Bennée        - CONFIG="--cc=gcc-7 --cxx=g++-7 --disable-pie --disable-linux-user"
26332265288SAlex Bennée        - TEST_CMD=""
26432265288SAlex Bennée      before_script:
2656a259f8dSDaniel P. Berrangé        - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
266197be697SDaniel P. Berrangé
267197be697SDaniel P. Berrangé
26865b26da4SAlex Bennée    - env:
269570f3c77SAlex Bennée        - CONFIG="--disable-system"
270e2576f9bSDaniel P. Berrangé        - TEST_CMD="make -j3 check-tcg V=1"
271