xref: /openbmc/qemu/.travis.yml (revision 507cb64d)
1os: linux
2dist: focal
3language: c
4compiler:
5  - gcc
6cache:
7  # There is one cache per branch and compiler version.
8  # characteristics of each job are used to identify the cache:
9  # - OS name (currently only linux)
10  # - OS distribution (for Linux, bionic or focal)
11  # - Names and values of visible environment variables set in .travis.yml or Settings panel
12  timeout: 1200
13  ccache: true
14  pip: true
15  directories:
16  - $HOME/avocado/data/cache
17
18
19# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
20# to prevent IRC notifications from forks. This was created using:
21# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
22notifications:
23  irc:
24    channels:
25      - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
26    on_success: change
27    on_failure: always
28
29
30env:
31  global:
32    - SRC_DIR=".."
33    - BUILD_DIR="build"
34    - BASE_CONFIG="--disable-docs --disable-tools"
35    - TEST_BUILD_CMD=""
36    - TEST_CMD="make check V=1"
37    # This is broadly a list of "mainline" softmmu targets which have support across the major distros
38    - MAIN_SOFTMMU_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
39    - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
40    - CCACHE_MAXSIZE=1G
41    - G_MESSAGES_DEBUG=error
42
43
44git:
45  # we want to do this ourselves
46  submodules: false
47
48# Common first phase for all steps
49# We no longer use nproc to calculate jobs:
50# https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851
51before_install:
52  - if command -v ccache ; then ccache --zero-stats ; fi
53  - export JOBS=3
54  - echo "=== Using ${JOBS} simultaneous jobs ==="
55
56# Configure step - may be overridden
57before_script:
58  - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
59  - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log meson-logs/meson-log.txt && exit 1; }
60
61# Main build & test - rarely overridden - controlled by TEST_CMD
62script:
63  - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
64  - |
65    if [ "$BUILD_RC" -eq 0 ] && [ -n "$TEST_BUILD_CMD" ]; then
66        ${TEST_BUILD_CMD} || BUILD_RC=$?
67    else
68        $(exit $BUILD_RC);
69    fi
70  - |
71    if [ "$BUILD_RC" -eq 0 ] ; then
72        ${TEST_CMD} ;
73    else
74        $(exit $BUILD_RC);
75    fi
76after_script:
77  - df -h
78  - if command -v ccache ; then ccache --show-stats ; fi
79
80
81jobs:
82  include:
83
84    - name: "[aarch64] GCC check-tcg"
85      arch: arm64
86      dist: focal
87      addons:
88        apt_packages:
89          - libaio-dev
90          - libattr1-dev
91          - libbrlapi-dev
92          - libcacard-dev
93          - libcap-ng-dev
94          - libfdt-dev
95          - libgcrypt20-dev
96          - libgnutls28-dev
97          - libgtk-3-dev
98          - libiscsi-dev
99          - liblttng-ust-dev
100          - libncurses5-dev
101          - libnfs-dev
102          - libpixman-1-dev
103          - libpng-dev
104          - librados-dev
105          - libsdl2-dev
106          - libseccomp-dev
107          - liburcu-dev
108          - libusb-1.0-0-dev
109          - libvdeplug-dev
110          - libvte-2.91-dev
111          - ninja-build
112          # Tests dependencies
113          - genisoimage
114      env:
115        - TEST_CMD="make check check-tcg V=1"
116        - CONFIG="--disable-containers --enable-fdt=system
117                  --target-list=${MAIN_SOFTMMU_TARGETS} --cxx=/bin/false"
118        - UNRELIABLE=true
119
120    - name: "[ppc64] GCC check-tcg"
121      arch: ppc64le
122      dist: focal
123      addons:
124        apt_packages:
125          - libaio-dev
126          - libattr1-dev
127          - libbrlapi-dev
128          - libcacard-dev
129          - libcap-ng-dev
130          - libfdt-dev
131          - libgcrypt20-dev
132          - libgnutls28-dev
133          - libgtk-3-dev
134          - libiscsi-dev
135          - liblttng-ust-dev
136          - libncurses5-dev
137          - libnfs-dev
138          - libpixman-1-dev
139          - libpng-dev
140          - librados-dev
141          - libsdl2-dev
142          - libseccomp-dev
143          - liburcu-dev
144          - libusb-1.0-0-dev
145          - libvdeplug-dev
146          - libvte-2.91-dev
147          - ninja-build
148          # Tests dependencies
149          - genisoimage
150      env:
151        - TEST_CMD="make check check-tcg V=1"
152        - CONFIG="--disable-containers --enable-fdt=system
153                  --target-list=ppc64-softmmu,ppc64le-linux-user"
154
155    - name: "[s390x] GCC check-tcg"
156      arch: s390x
157      dist: focal
158      addons:
159        apt_packages:
160          - libaio-dev
161          - libattr1-dev
162          - libbrlapi-dev
163          - libcacard-dev
164          - libcap-ng-dev
165          - libfdt-dev
166          - libgcrypt20-dev
167          - libgnutls28-dev
168          - libgtk-3-dev
169          - libiscsi-dev
170          - liblttng-ust-dev
171          - libncurses5-dev
172          - libnfs-dev
173          - libpixman-1-dev
174          - libpng-dev
175          - librados-dev
176          - libsdl2-dev
177          - libseccomp-dev
178          - liburcu-dev
179          - libusb-1.0-0-dev
180          - libvdeplug-dev
181          - libvte-2.91-dev
182          - ninja-build
183          # Tests dependencies
184          - genisoimage
185      env:
186        - TEST_CMD="make check check-tcg V=1"
187        - CONFIG="--disable-containers --enable-fdt=system
188                  --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user"
189        - UNRELIABLE=true
190      script:
191        - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
192        - |
193          if [ "$BUILD_RC" -eq 0 ] ; then
194              mv pc-bios/s390-ccw/*.img qemu-bundle/usr/local/share/qemu ;
195              ${TEST_CMD} ;
196          else
197              $(exit $BUILD_RC);
198          fi
199
200    - name: "[s390x] GCC (other-softmmu)"
201      arch: s390x
202      dist: focal
203      addons:
204        apt_packages:
205          - libaio-dev
206          - libattr1-dev
207          - libcacard-dev
208          - libcap-ng-dev
209          - libfdt-dev
210          - libgnutls28-dev
211          - libiscsi-dev
212          - liblttng-ust-dev
213          - liblzo2-dev
214          - libncurses-dev
215          - libnfs-dev
216          - libpixman-1-dev
217          - libsdl2-dev
218          - libsdl2-image-dev
219          - libseccomp-dev
220          - libsnappy-dev
221          - libzstd-dev
222          - nettle-dev
223          - xfslibs-dev
224          - ninja-build
225          # Tests dependencies
226          - genisoimage
227      env:
228        - CONFIG="--disable-containers --enable-fdt=system --audio-drv-list=sdl
229                  --disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
230
231    - name: "[s390x] GCC (user)"
232      arch: s390x
233      dist: focal
234      addons:
235        apt_packages:
236          - libgcrypt20-dev
237          - libglib2.0-dev
238          - libgnutls28-dev
239          - ninja-build
240      env:
241        - CONFIG="--disable-containers --disable-system"
242
243    - name: "[s390x] Clang (disable-tcg)"
244      arch: s390x
245      dist: focal
246      compiler: clang
247      addons:
248        apt_packages:
249          - libaio-dev
250          - libattr1-dev
251          - libbrlapi-dev
252          - libcacard-dev
253          - libcap-ng-dev
254          - libfdt-dev
255          - libgcrypt20-dev
256          - libgnutls28-dev
257          - libgtk-3-dev
258          - libiscsi-dev
259          - liblttng-ust-dev
260          - libncurses5-dev
261          - libnfs-dev
262          - libpixman-1-dev
263          - libpng-dev
264          - librados-dev
265          - libsdl2-dev
266          - libseccomp-dev
267          - liburcu-dev
268          - libusb-1.0-0-dev
269          - libvdeplug-dev
270          - libvte-2.91-dev
271          - ninja-build
272      env:
273        - TEST_CMD="make check-unit"
274        - CONFIG="--disable-containers --disable-tcg --enable-kvm --disable-tools
275                  --enable-fdt=system --host-cc=clang --cxx=clang++"
276        - UNRELIABLE=true
277