os: linux dist: focal language: c compiler: - gcc cache: # There is one cache per branch and compiler version. # characteristics of each job are used to identify the cache: # - OS name (currently only linux) # - OS distribution (for Linux, bionic or focal) # - Names and values of visible environment variables set in .travis.yml or Settings panel timeout: 1200 ccache: true pip: true directories: - $HOME/avocado/data/cache # The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu # to prevent IRC notifications from forks. This was created using: # $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu" notifications: irc: channels: - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" on_success: change on_failure: always env: global: - SRC_DIR=".." - BUILD_DIR="build" - BASE_CONFIG="--disable-docs --disable-tools" - TEST_BUILD_CMD="" - TEST_CMD="make check V=1" # This is broadly a list of "mainline" system targets which have support across the major distros - MAIN_SYSTEM_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu" - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime" - CCACHE_MAXSIZE=1G - G_MESSAGES_DEBUG=error git: # we want to do this ourselves submodules: false # Common first phase for all steps # We no longer use nproc to calculate jobs: # https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851 before_install: - if command -v ccache ; then ccache --zero-stats ; fi - export JOBS=3 - echo "=== Using ${JOBS} simultaneous jobs ===" # Configure step - may be overridden before_script: - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR} - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log meson-logs/meson-log.txt && exit 1; } # Main build & test - rarely overridden - controlled by TEST_CMD script: - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? - | if [ "$BUILD_RC" -eq 0 ] && [ -n "$TEST_BUILD_CMD" ]; then ${TEST_BUILD_CMD} || BUILD_RC=$? else $(exit $BUILD_RC); fi - | if [ "$BUILD_RC" -eq 0 ] ; then ${TEST_CMD} ; else $(exit $BUILD_RC); fi after_script: - df -h - if command -v ccache ; then ccache --show-stats ; fi jobs: include: - name: "[aarch64] GCC check-tcg" arch: arm64 dist: focal addons: apt_packages: - libaio-dev - libattr1-dev - libbrlapi-dev - libcacard-dev - libcap-ng-dev - libfdt-dev - libgcrypt20-dev - libgnutls28-dev - libgtk-3-dev - libiscsi-dev - liblttng-ust-dev - libncurses5-dev - libnfs-dev - libpixman-1-dev - libpng-dev - librados-dev - libsdl2-dev - libseccomp-dev - liburcu-dev - libusb-1.0-0-dev - libvdeplug-dev - libvte-2.91-dev - ninja-build # Tests dependencies - genisoimage env: - TEST_CMD="make check check-tcg V=1" - CONFIG="--disable-containers --enable-fdt=system --target-list=${MAIN_SYSTEM_TARGETS} --cxx=/bin/false" - UNRELIABLE=true - name: "[ppc64] GCC check-tcg" arch: ppc64le dist: focal addons: apt_packages: - libaio-dev - libattr1-dev - libbrlapi-dev - libcacard-dev - libcap-ng-dev - libfdt-dev - libgcrypt20-dev - libgnutls28-dev - libgtk-3-dev - libiscsi-dev - liblttng-ust-dev - libncurses5-dev - libnfs-dev - libpixman-1-dev - libpng-dev - librados-dev - libsdl2-dev - libseccomp-dev - liburcu-dev - libusb-1.0-0-dev - libvdeplug-dev - libvte-2.91-dev - ninja-build # Tests dependencies - genisoimage env: - TEST_CMD="make check check-tcg V=1" - CONFIG="--disable-containers --enable-fdt=system --target-list=ppc64-softmmu,ppc64le-linux-user" - name: "[s390x] GCC check-tcg" arch: s390x dist: focal addons: apt_packages: - libaio-dev - libattr1-dev - libbrlapi-dev - libcacard-dev - libcap-ng-dev - libfdt-dev - libgcrypt20-dev - libgnutls28-dev - libgtk-3-dev - libiscsi-dev - liblttng-ust-dev - libncurses5-dev - libnfs-dev - libpixman-1-dev - libpng-dev - librados-dev - libsdl2-dev - libseccomp-dev - liburcu-dev - libusb-1.0-0-dev - libvdeplug-dev - libvte-2.91-dev - ninja-build # Tests dependencies - genisoimage env: - TEST_CMD="make check check-tcg V=1" - CONFIG="--disable-containers --enable-fdt=system --target-list=${MAIN_SYSTEM_TARGETS},s390x-linux-user" - UNRELIABLE=true script: - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? - | if [ "$BUILD_RC" -eq 0 ] ; then mv pc-bios/s390-ccw/*.img qemu-bundle/usr/local/share/qemu ; ${TEST_CMD} ; else $(exit $BUILD_RC); fi - name: "[s390x] GCC (other-system)" arch: s390x dist: focal addons: apt_packages: - libaio-dev - libattr1-dev - libcacard-dev - libcap-ng-dev - libfdt-dev - libgnutls28-dev - libiscsi-dev - liblttng-ust-dev - liblzo2-dev - libncurses-dev - libnfs-dev - libpixman-1-dev - libsdl2-dev - libsdl2-image-dev - libseccomp-dev - libsnappy-dev - libzstd-dev - nettle-dev - xfslibs-dev - ninja-build # Tests dependencies - genisoimage env: - CONFIG="--disable-containers --enable-fdt=system --audio-drv-list=sdl --disable-user --target-list-exclude=${MAIN_SYSTEM_TARGETS}" - name: "[s390x] GCC (user)" arch: s390x dist: focal addons: apt_packages: - libgcrypt20-dev - libglib2.0-dev - libgnutls28-dev - ninja-build - flex - bison env: - CONFIG="--disable-containers --disable-system" - name: "[s390x] Clang (disable-tcg)" arch: s390x dist: focal compiler: clang-10 addons: apt_packages: - libaio-dev - libattr1-dev - libbrlapi-dev - libcacard-dev - libcap-ng-dev - libfdt-dev - libgcrypt20-dev - libgnutls28-dev - libgtk-3-dev - libiscsi-dev - liblttng-ust-dev - libncurses5-dev - libnfs-dev - libpixman-1-dev - libpng-dev - librados-dev - libsdl2-dev - libseccomp-dev - liburcu-dev - libusb-1.0-0-dev - libvdeplug-dev - libvte-2.91-dev - ninja-build - clang-10 env: - TEST_CMD="make check-unit" - CONFIG="--disable-containers --disable-tcg --enable-kvm --disable-tools --enable-fdt=system --host-cc=clang --cxx=clang++" - UNRELIABLE=true