# The current Travis default is a VM based 16.04 Xenial on GCE
# Additional builds with specific requirements for a full VM need to
# be added as additional matrix: entries later on
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


addons:
  apt:
    packages:
      # Build dependencies
      - libaio-dev
      - libattr1-dev
      - libbrlapi-dev
      - libcap-ng-dev
      - libgcc-7-dev
      - libgnutls28-dev
      - libgtk-3-dev
      - libiscsi-dev
      - liblttng-ust-dev
      - libncurses5-dev
      - libnfs-dev
      - libnss3-dev
      - libpixman-1-dev
      - libpng-dev
      - librados-dev
      - libsdl2-dev
      - libsdl2-image-dev
      - libseccomp-dev
      - libspice-protocol-dev
      - libspice-server-dev
      - libssh-dev
      - liburcu-dev
      - libusb-1.0-0-dev
      - libvdeplug-dev
      - libvte-2.91-dev
      - libzstd-dev
      - ninja-build
      - sparse
      - uuid-dev
      - gcovr
      # Tests dependencies
      - genisoimage


# 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" softmmu targets which have support across the major distros
    - MAIN_SOFTMMU_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
before_install:
  - if command -v ccache ; then ccache --zero-stats ; fi
  - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
  - 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:
    # --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
    - name: "GCC debug (main-softmmu)"
      env:
        - CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"


    # TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
    - name: "GCC debug (user)"
      env:
        - CONFIG="--enable-debug-tcg --disable-system"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"

    # Module builds are mostly of interest to major distros
    - name: "GCC modules (main-softmmu)"
      env:
        - CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"


    # Test with Clang for compile portability (Travis uses clang-5.0)
    - name: "Clang (user)"
      env:
        - CONFIG="--disable-system --host-cc=clang --cxx=clang++"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
      compiler: clang


    - name: "Clang (main-softmmu)"
      env:
        - CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}
                  --host-cc=clang --cxx=clang++"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
      compiler: clang
      before_script:
        - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log meson-logs/meson-log.txt && exit 1; }


    - name: "Clang (other-softmmu)"
      env:
        - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}
                  --host-cc=clang --cxx=clang++"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
      compiler: clang


    # gprof/gcov are GCC features
    - name: "GCC gprof/gcov"
      dist: bionic
      addons:
        apt:
          packages:
            - ninja-build
      env:
        - CONFIG="--enable-gprof --enable-gcov --disable-libssh
                  --target-list=${MAIN_SOFTMMU_TARGETS}"
      after_success:
        - ${SRC_DIR}/scripts/travis/coverage-summary.sh


    # Using newer GCC with sanitizers
    - name: "GCC9 with sanitizers (softmmu)"
      dist: bionic
      addons:
        apt:
          update: true
          sources:
            # PPAs for newer toolchains
            - ubuntu-toolchain-r-test
          packages:
            # Extra toolchains
            - gcc-9
            - g++-9
            # Build dependencies
            - libaio-dev
            - libattr1-dev
            - libbrlapi-dev
            - libcap-ng-dev
            - libgnutls28-dev
            - libgtk-3-dev
            - libiscsi-dev
            - liblttng-ust-dev
            - libnfs-dev
            - libncurses5-dev
            - libnss3-dev
            - libpixman-1-dev
            - libpng-dev
            - librados-dev
            - libsdl2-dev
            - libsdl2-image-dev
            - libseccomp-dev
            - libspice-protocol-dev
            - libspice-server-dev
            - liburcu-dev
            - libusb-1.0-0-dev
            - libvte-2.91-dev
            - ninja-build
            - sparse
            - uuid-dev
      language: generic
      compiler: none
      env:
        - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-linux-user"
        - TEST_CMD=""
      before_script:
        - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread" || { cat config.log meson-logs/meson-log.txt && exit 1; }


    - name: "[aarch64] GCC check-tcg"
      arch: arm64
      dist: focal
      addons:
        apt_packages:
          - libaio-dev
          - libattr1-dev
          - libbrlapi-dev
          - libcap-ng-dev
          - libgcrypt20-dev
          - libgnutls28-dev
          - libgtk-3-dev
          - libiscsi-dev
          - liblttng-ust-dev
          - libncurses5-dev
          - libnfs-dev
          - libnss3-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 --target-list=${MAIN_SOFTMMU_TARGETS}"
        - UNRELIABLE=true

    - name: "[ppc64] GCC check-tcg"
      arch: ppc64le
      dist: focal
      addons:
        apt_packages:
          - libaio-dev
          - libattr1-dev
          - libbrlapi-dev
          - libcap-ng-dev
          - libgcrypt20-dev
          - libgnutls28-dev
          - libgtk-3-dev
          - libiscsi-dev
          - liblttng-ust-dev
          - libncurses5-dev
          - libnfs-dev
          - libnss3-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 --target-list=ppc64-softmmu,ppc64le-linux-user"

    - name: "[s390x] GCC check-tcg"
      arch: s390x
      dist: bionic
      addons:
        apt_packages:
          - libaio-dev
          - libattr1-dev
          - libbrlapi-dev
          - libcap-ng-dev
          - libgcrypt20-dev
          - libgnutls28-dev
          - libgtk-3-dev
          - libiscsi-dev
          - liblttng-ust-dev
          - libncurses5-dev
          - libnfs-dev
          - libnss3-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 --target-list=${MAIN_SOFTMMU_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 pc-bios/ ;
              ${TEST_CMD} ;
          else
              $(exit $BUILD_RC);
          fi

    - name: "[s390x] GCC (other-softmmu)"
      arch: s390x
      dist: bionic
      addons:
        apt_packages:
          - libaio-dev
          - libattr1-dev
          - libcap-ng-dev
          - libgnutls28-dev
          - libiscsi-dev
          - liblttng-ust-dev
          - liblzo2-dev
          - libncurses-dev
          - libnfs-dev
          - libnss3-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 --audio-drv-list=sdl --disable-user
                  --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"

    - name: "[s390x] GCC (user)"
      arch: s390x
      dist: bionic
      addons:
        apt_packages:
          - libgcrypt20-dev
          - libgnutls28-dev
          - ninja-build
      env:
        - CONFIG="--disable-containers --disable-system"

    - name: "[s390x] Clang (disable-tcg)"
      arch: s390x
      dist: bionic
      compiler: clang
      addons:
        apt_packages:
          - libaio-dev
          - libattr1-dev
          - libbrlapi-dev
          - libcap-ng-dev
          - libgcrypt20-dev
          - libgnutls28-dev
          - libgtk-3-dev
          - libiscsi-dev
          - liblttng-ust-dev
          - libncurses5-dev
          - libnfs-dev
          - libnss3-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
      env:
        - TEST_CMD="make check-unit"
        - CONFIG="--disable-containers --disable-tcg --enable-kvm
                  --disable-tools --host-cc=clang --cxx=clang++"
        - UNRELIABLE=true

    # Release builds
    # The make-release script expect a QEMU version, so our tag must start with a 'v'.
    # This is the case when release candidate tags are created.
    - name: "Release tarball"
      if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/
      env:
        # We want to build from the release tarball
        - BUILD_DIR="release/build/dir" SRC_DIR="../../.."
        - BASE_CONFIG="--prefix=$PWD/dist"
        - CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user"
        - TEST_CMD="make install -j${JOBS}"
        - QEMU_VERSION="${TRAVIS_TAG:1}"
        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
      script:
        - make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2
        - ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2
        - tar -xf ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2 && cd qemu-${QEMU_VERSION}
        - mkdir -p release-build && cd release-build
        - ../configure ${BASE_CONFIG} ${CONFIG} || { cat config.log meson-logs/meson-log.txt && exit 1; }
        - make install
  allow_failures:
    - env: UNRELIABLE=true
