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