xref: /openbmc/qemu/.travis.yml (revision 83703220)
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
84bc629b2SPhilippe Mathieu-Daudécache:
95ef9c53cSPhilippe Mathieu-Daudé  # There is one cache per branch and compiler version.
105ef9c53cSPhilippe Mathieu-Daudé  # characteristics of each job are used to identify the cache:
115ef9c53cSPhilippe Mathieu-Daudé  # - OS name (currently, linux, osx, or windows)
125ef9c53cSPhilippe Mathieu-Daudé  # - OS distribution (for Linux, xenial, trusty, or precise)
135ef9c53cSPhilippe Mathieu-Daudé  # - macOS image name (e.g., xcode7.2)
145ef9c53cSPhilippe Mathieu-Daudé  # - Names and values of visible environment variables set in .travis.yml or Settings panel
15731cbb64SPhilippe Mathieu-Daudé  timeout: 1200
164bc629b2SPhilippe Mathieu-Daudé  ccache: true
176e189d78SPhilippe Mathieu-Daudé  pip: true
18c1073e44SPhilippe Mathieu-Daudé  directories:
19c1073e44SPhilippe Mathieu-Daudé  - $HOME/avocado/data/cache
20197be697SDaniel P. Berrangé
21197be697SDaniel P. Berrangé
22692d162cSAlex Bennéeaddons:
23692d162cSAlex Bennée  apt:
24692d162cSAlex Bennée    packages:
2532265288SAlex Bennée      # Build dependencies
26692d162cSAlex Bennée      - libaio-dev
27692d162cSAlex Bennée      - libattr1-dev
28692d162cSAlex Bennée      - libbrlapi-dev
29c269447fSThomas Huth      - libcap-dev
30692d162cSAlex Bennée      - libcap-ng-dev
317524a39dSPhilippe Mathieu-Daudé      - libgcc-4.8-dev
323c7a8b41SThomas Huth      - libgnutls28-dev
33692d162cSAlex Bennée      - libgtk-3-dev
34692d162cSAlex Bennée      - libiscsi-dev
35692d162cSAlex Bennée      - liblttng-ust-dev
36692d162cSAlex Bennée      - libncurses5-dev
37d83414e1SMarc-André Lureau      - libnfs-dev
38692d162cSAlex Bennée      - libnss3-dev
39692d162cSAlex Bennée      - libpixman-1-dev
403c7a8b41SThomas Huth      - libpng-dev
41692d162cSAlex Bennée      - librados-dev
42241e7955SThomas Huth      - libsdl2-dev
43241e7955SThomas Huth      - libsdl2-image-dev
44692d162cSAlex Bennée      - libseccomp-dev
45692d162cSAlex Bennée      - libspice-protocol-dev
46692d162cSAlex Bennée      - libspice-server-dev
47b10d49d7SPino Toscano      - libssh-dev
48692d162cSAlex Bennée      - liburcu-dev
49692d162cSAlex Bennée      - libusb-1.0-0-dev
507c1dd4d1SThomas Huth      - libvdeplug-dev
5195310576SAlex Bennée      - libvte-2.91-dev
52692d162cSAlex Bennée      - sparse
53692d162cSAlex Bennée      - uuid-dev
540708e647SAlex Bennée      - gcovr
5591fa7dd1SAlex Bennée  homebrew:
5691fa7dd1SAlex Bennée    packages:
570d8773c2SPhilippe Mathieu-Daudé      - ccache
5891fa7dd1SAlex Bennée      - glib
5991fa7dd1SAlex Bennée      - pixman
60db2b95d5SThomas Huth      - gnu-sed
6171451cffSAlex Bennée    update: true
62692d162cSAlex Bennée
63197be697SDaniel P. Berrangé
64cb4c2536SPranith Kumar# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
65cb4c2536SPranith Kumar# to prevent IRC notifications from forks. This was created using:
66cb4c2536SPranith Kumar# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
6739d16d29SAlex Bennéenotifications:
6839d16d29SAlex Bennée  irc:
6939d16d29SAlex Bennée    channels:
70cb4c2536SPranith Kumar      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
7139d16d29SAlex Bennée    on_success: change
7239d16d29SAlex Bennée    on_failure: always
73197be697SDaniel P. Berrangé
74197be697SDaniel P. Berrangé
75fe863ab9SAlex Bennéeenv:
76fe863ab9SAlex Bennée  global:
77ebf2ff65SPhilippe Mathieu-Daudé    - SRC_DIR="."
78ebf2ff65SPhilippe Mathieu-Daudé    - BUILD_DIR="."
79570f3c77SAlex Bennée    - BASE_CONFIG="--disable-docs --disable-tools"
80e2576f9bSDaniel P. Berrangé    - TEST_CMD="make check -j3 V=1"
818c3daf97SAlex Bennée    # This is broadly a list of "mainline" softmmu targets which have support across the major distros
828c3daf97SAlex Bennée    - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
83bcfbf0d5SPhilippe Mathieu-Daudé    - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
84bcfbf0d5SPhilippe Mathieu-Daudé    - CCACHE_MAXSIZE=1G
85bcfbf0d5SPhilippe Mathieu-Daudé
86197be697SDaniel P. Berrangé
87cb021cfeSAlex Bennéegit:
88cb021cfeSAlex Bennée  # we want to do this ourselves
89cb021cfeSAlex Bennée  submodules: false
90197be697SDaniel P. Berrangé
91197be697SDaniel P. Berrangé
92eebf2940SAlex Bennéebefore_script:
930d8773c2SPhilippe Mathieu-Daudé  - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi
94312995c2SThomas Huth  - if command -v ccache ; then ccache --zero-stats ; fi
95ebf2ff65SPhilippe Mathieu-Daudé  - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
96570f3c77SAlex Bennée  - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
97eebf2940SAlex Bennéescript:
983a37c13fSAlex Bennée  - make -j3 && travis_retry ${TEST_CMD}
99bcfbf0d5SPhilippe Mathieu-Daudéafter_script:
100312995c2SThomas Huth  - if command -v ccache ; then ccache --show-stats ; fi
101197be697SDaniel P. Berrangé
102197be697SDaniel P. Berrangé
103fe863ab9SAlex Bennéematrix:
104fe863ab9SAlex Bennée  include:
105c21d7efcSDaniel P. Berrangé    - env:
106c3c1874aSAlex Bennée        - CONFIG="--disable-system --static"
1077d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
1083e094234SDaniel P. Berrangé
1093e094234SDaniel P. Berrangé
1108c3daf97SAlex Bennée    # we split the system builds as it takes a while to build them all
111c21d7efcSDaniel P. Berrangé    - env:
1128c3daf97SAlex Bennée        - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
1137d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
1148c3daf97SAlex Bennée
1158c3daf97SAlex Bennée
1168c3daf97SAlex Bennée    - env:
1178c3daf97SAlex Bennée        - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
1187d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
1193e094234SDaniel P. Berrangé
1203e094234SDaniel P. Berrangé
121df2bb38eSAlex Bennée    # Just build tools and run minimal unit and softfloat checks
122df2bb38eSAlex Bennée    - env:
123df2bb38eSAlex Bennée        - BASE_CONFIG="--enable-tools"
124df2bb38eSAlex Bennée        - CONFIG="--disable-user --disable-system"
125df2bb38eSAlex Bennée        - TEST_CMD="make check-unit check-softfloat -j3"
1267d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
1277d183c54SPhilippe Mathieu-Daudé
128df2bb38eSAlex Bennée
129138382c6SAlex Bennée    # --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
130c21d7efcSDaniel P. Berrangé    - env:
131138382c6SAlex Bennée        - CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
1328fb90e3dSPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
1334e6e7df6SAlex Bennée
1344e6e7df6SAlex Bennée
135138382c6SAlex Bennée    # TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
1364e6e7df6SAlex Bennée    - env:
1374e6e7df6SAlex Bennée        - CONFIG="--enable-debug-tcg --disable-system"
1388fb90e3dSPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
1393e094234SDaniel P. Berrangé
1403e094234SDaniel P. Berrangé
141c21d7efcSDaniel P. Berrangé    - env:
142aec2927dSAlex Bennée        - CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-libusb --disable-replication --target-list=${MAIN_SOFTMMU_TARGETS}"
1433e094234SDaniel P. Berrangé
1443e094234SDaniel P. Berrangé
1452f6c2526SAlex Bennée    # Module builds are mostly of interest to major distros
146c21d7efcSDaniel P. Berrangé    - env:
1478c3daf97SAlex Bennée        - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
1487d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
1493e094234SDaniel P. Berrangé
1503e094234SDaniel P. Berrangé
151f3908ff7SAlex Bennée    # Alternate coroutines implementations are only really of interest to KVM users
152f3908ff7SAlex Bennée    # However we can't test against KVM on Travis so we can only run unit tests
153c21d7efcSDaniel P. Berrangé    - env:
154f3908ff7SAlex Bennée        - CONFIG="--with-coroutine=ucontext --disable-tcg"
155f3908ff7SAlex Bennée        - TEST_CMD="make check-unit -j3 V=1"
1563e094234SDaniel P. Berrangé
1573e094234SDaniel P. Berrangé
158c21d7efcSDaniel P. Berrangé    - env:
159f3908ff7SAlex Bennée        - CONFIG="--with-coroutine=sigaltstack --disable-tcg"
160f3908ff7SAlex Bennée        - TEST_CMD="make check-unit -j3 V=1"
1613e094234SDaniel P. Berrangé
1623e094234SDaniel P. Berrangé
163956d4506SAlex Bennée    # Check we can build docs and tools (out of tree)
164570f3c77SAlex Bennée    - env:
165956d4506SAlex Bennée        - BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
166570f3c77SAlex Bennée        - BASE_CONFIG="--enable-tools --enable-docs"
167570f3c77SAlex Bennée        - CONFIG="--target-list=x86_64-softmmu,aarch64-linux-user"
1687d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
169570f3c77SAlex Bennée      addons:
170570f3c77SAlex Bennée        apt:
171570f3c77SAlex Bennée          packages:
172570f3c77SAlex Bennée            - python-sphinx
173570f3c77SAlex Bennée            - texinfo
174570f3c77SAlex Bennée            - perl
175570f3c77SAlex Bennée
176197be697SDaniel P. Berrangé
177ae6d692dSAlex Bennée    # Test with Clang for compile portability (Travis uses clang-5.0)
178c21d7efcSDaniel P. Berrangé    - env:
179c21d7efcSDaniel P. Berrangé        - CONFIG="--disable-system"
180e2bef011SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
181ae6d692dSAlex Bennée      compiler: clang
182197be697SDaniel P. Berrangé
183197be697SDaniel P. Berrangé
184c21d7efcSDaniel P. Berrangé    - env:
1858c3daf97SAlex Bennée        - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
186e2bef011SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
1878c3daf97SAlex Bennée      compiler: clang
1888c3daf97SAlex Bennée
1898c3daf97SAlex Bennée
1908c3daf97SAlex Bennée    - env:
1917831147eSAlex Bennée        - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
192b08c2ae3SAlex Bennée        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
1937831147eSAlex Bennée      compiler: clang
1947831147eSAlex Bennée      before_script:
1957831147eSAlex Bennée        - ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; }
1967831147eSAlex Bennée
1977831147eSAlex Bennée
1987831147eSAlex Bennée    - env:
1998c3daf97SAlex Bennée        - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
200e2bef011SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
201d9a6b013SDaniel P. Berrange      compiler: clang
202197be697SDaniel P. Berrangé
203197be697SDaniel P. Berrangé
2046c933291SAlex Bennée    # gprof/gcov are GCC features
205c21d7efcSDaniel P. Berrangé    - env:
2068c3daf97SAlex Bennée        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
2070708e647SAlex Bennée      after_success:
2080708e647SAlex Bennée        - ${SRC_DIR}/scripts/travis/coverage-summary.sh
209197be697SDaniel P. Berrangé
210197be697SDaniel P. Berrangé
2116c933291SAlex Bennée    # We manually include builds which we disable "make check" for
212c21d7efcSDaniel P. Berrangé    - env:
213386dc514SAlex Bennée        - CONFIG="--without-default-devices --disable-user"
2147d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
21520885b5bSPaolo Bonzini        - TEST_CMD=""
21620885b5bSPaolo Bonzini
21720885b5bSPaolo Bonzini
21820885b5bSPaolo Bonzini    # We manually include builds which we disable "make check" for
21920885b5bSPaolo Bonzini    - env:
220c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-debug --enable-tcg-interpreter"
221c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
222197be697SDaniel P. Berrangé
223197be697SDaniel P. Berrangé
224f8309de9SAlex Bennée    # We don't need to exercise every backend with every front-end
225c21d7efcSDaniel P. Berrangé    - env:
226c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
227c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
228197be697SDaniel P. Berrangé
229197be697SDaniel P. Berrangé
230c21d7efcSDaniel P. Berrangé    - env:
231c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
232c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
233197be697SDaniel P. Berrangé
234197be697SDaniel P. Berrangé
235c21d7efcSDaniel P. Berrangé    - env:
236c21d7efcSDaniel P. Berrangé        - CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
237c21d7efcSDaniel P. Berrangé        - TEST_CMD=""
238197be697SDaniel P. Berrangé
239197be697SDaniel P. Berrangé
240adcf9683SAlex Bennée    # MacOSX builds
241c21d7efcSDaniel P. Berrangé    - env:
2428c3daf97SAlex Bennée        - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}"
2431d002037SAlex Bennée      os: osx
244adcf9683SAlex Bennée      osx_image: xcode9.4
245adcf9683SAlex Bennée      compiler: clang
246197be697SDaniel P. Berrangé
247197be697SDaniel P. Berrangé
248cd7507cbSPhilippe Mathieu-Daudé    - env:
249cd7507cbSPhilippe Mathieu-Daudé        - CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
250cd7507cbSPhilippe Mathieu-Daudé      os: osx
2510cb3e7baSAlex Bennée      osx_image: xcode10.3
252cd7507cbSPhilippe Mathieu-Daudé      compiler: clang
253cd7507cbSPhilippe Mathieu-Daudé
254cd7507cbSPhilippe Mathieu-Daudé
255ae6d692dSAlex Bennée    # Python builds
256c21d7efcSDaniel P. Berrangé    - env:
257c21d7efcSDaniel P. Berrangé        - CONFIG="--target-list=x86_64-softmmu"
2587d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
25953fefde4SCleber Rosa      language: python
2608e73a3c5SDaniel P. Berrange      python:
26153fefde4SCleber Rosa        - "3.4"
262197be697SDaniel P. Berrangé
263197be697SDaniel P. Berrangé
264c21d7efcSDaniel P. Berrangé    - env:
265c21d7efcSDaniel P. Berrangé        - CONFIG="--target-list=x86_64-softmmu"
2667d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
26753fefde4SCleber Rosa      language: python
2688e73a3c5SDaniel P. Berrange      python:
2698e73a3c5SDaniel P. Berrange        - "3.6"
270197be697SDaniel P. Berrangé
271197be697SDaniel P. Berrangé
272aa983ff6SCleber Rosa    # Acceptance (Functional) tests
273c21d7efcSDaniel P. Berrangé    - env:
274*83703220SPhilippe Mathieu-Daudé        - CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
2750b98c20aSEduardo Habkost        - TEST_CMD="make check-acceptance"
276c21f30ebSCleber Rosa      after_failure:
277c21f30ebSCleber Rosa        - cat tests/results/latest/job.log
278aa983ff6SCleber Rosa      addons:
279aa983ff6SCleber Rosa        apt:
280aa983ff6SCleber Rosa          packages:
28125311649SPhilippe Mathieu-Daudé            - python3-pil
282aa983ff6SCleber Rosa            - python3-pip
28395310576SAlex Bennée            - python3.5-venv
28425311649SPhilippe Mathieu-Daudé            - tesseract-ocr
28525311649SPhilippe Mathieu-Daudé            - tesseract-ocr-eng
28625311649SPhilippe Mathieu-Daudé
28725311649SPhilippe Mathieu-Daudé
28832265288SAlex Bennée    # Using newer GCC with sanitizers
28932265288SAlex Bennée    - addons:
29032265288SAlex Bennée        apt:
291ac07ffc6SAlex Bennée          update: true
29232265288SAlex Bennée          sources:
29332265288SAlex Bennée            # PPAs for newer toolchains
29432265288SAlex Bennée            - ubuntu-toolchain-r-test
29532265288SAlex Bennée          packages:
29632265288SAlex Bennée            # Extra toolchains
2973998c25eSAlex Bennée            - gcc-9
2983998c25eSAlex Bennée            - g++-9
29932265288SAlex Bennée            # Build dependencies
30032265288SAlex Bennée            - libaio-dev
30132265288SAlex Bennée            - libattr1-dev
30232265288SAlex Bennée            - libbrlapi-dev
30332265288SAlex Bennée            - libcap-ng-dev
30432265288SAlex Bennée            - libgnutls-dev
30532265288SAlex Bennée            - libgtk-3-dev
30632265288SAlex Bennée            - libiscsi-dev
30732265288SAlex Bennée            - liblttng-ust-dev
30832265288SAlex Bennée            - libnfs-dev
30932265288SAlex Bennée            - libncurses5-dev
31032265288SAlex Bennée            - libnss3-dev
31132265288SAlex Bennée            - libpixman-1-dev
31232265288SAlex Bennée            - libpng12-dev
31332265288SAlex Bennée            - librados-dev
314241e7955SThomas Huth            - libsdl2-dev
315241e7955SThomas Huth            - libsdl2-image-dev
31632265288SAlex Bennée            - libseccomp-dev
31732265288SAlex Bennée            - libspice-protocol-dev
31832265288SAlex Bennée            - libspice-server-dev
319b10d49d7SPino Toscano            - libssh-dev
32032265288SAlex Bennée            - liburcu-dev
32132265288SAlex Bennée            - libusb-1.0-0-dev
32295310576SAlex Bennée            - libvte-2.91-dev
32332265288SAlex Bennée            - sparse
32432265288SAlex Bennée            - uuid-dev
32532265288SAlex Bennée      language: generic
32632265288SAlex Bennée      compiler: none
32732265288SAlex Bennée      env:
3283998c25eSAlex Bennée        - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
3293998c25eSAlex Bennée        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user"
33032265288SAlex Bennée        - TEST_CMD=""
33132265288SAlex Bennée      before_script:
3323998c25eSAlex Bennée        - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
333197be697SDaniel P. Berrangé
334197be697SDaniel P. Berrangé
335dab3a7c0SAlex Bennée    # Run check-tcg against linux-user
33665b26da4SAlex Bennée    - env:
3372efabbe1SAlex Bennée        - CONFIG="--disable-system --enable-debug-tcg"
338e2576f9bSDaniel P. Berrangé        - TEST_CMD="make -j3 check-tcg V=1"
3397d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
3407d183c54SPhilippe Mathieu-Daudé
341dab3a7c0SAlex Bennée
342dab3a7c0SAlex Bennée    # Run check-tcg against softmmu targets
343dab3a7c0SAlex Bennée    - env:
3442efabbe1SAlex Bennée        - CONFIG="--enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
345dab3a7c0SAlex Bennée        - TEST_CMD="make -j3 check-tcg V=1"
3467d183c54SPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
34761ac3dccSPhilippe Mathieu-Daudé
34861ac3dccSPhilippe Mathieu-Daudé
34961ac3dccSPhilippe Mathieu-Daudé    # Release builds
35061ac3dccSPhilippe Mathieu-Daudé    # The make-release script expect a QEMU version, so our tag must start with a 'v'.
35161ac3dccSPhilippe Mathieu-Daudé    # This is the case when release candidate tags are created.
35261ac3dccSPhilippe Mathieu-Daudé    - if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/
35361ac3dccSPhilippe Mathieu-Daudé      env:
35461ac3dccSPhilippe Mathieu-Daudé        # We want to build from the release tarball
35561ac3dccSPhilippe Mathieu-Daudé        - BUILD_DIR="release/build/dir" SRC_DIR="../../.."
35661ac3dccSPhilippe Mathieu-Daudé        - BASE_CONFIG="--prefix=$PWD/dist"
35761ac3dccSPhilippe Mathieu-Daudé        - CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user"
35861ac3dccSPhilippe Mathieu-Daudé        - TEST_CMD="make install -j3"
35961ac3dccSPhilippe Mathieu-Daudé        - QEMU_VERSION="${TRAVIS_TAG:1}"
36061ac3dccSPhilippe Mathieu-Daudé        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
36161ac3dccSPhilippe Mathieu-Daudé      before_script:
36261ac3dccSPhilippe Mathieu-Daudé        - command -v ccache && ccache --zero-stats
36361ac3dccSPhilippe Mathieu-Daudé        - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
36461ac3dccSPhilippe Mathieu-Daudé      script:
36561ac3dccSPhilippe Mathieu-Daudé        - make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2
36661ac3dccSPhilippe Mathieu-Daudé        - ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2
36761ac3dccSPhilippe Mathieu-Daudé        - tar -xf ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2 && cd qemu-${QEMU_VERSION}
36861ac3dccSPhilippe Mathieu-Daudé        - ./configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
36961ac3dccSPhilippe Mathieu-Daudé        - make install
370