| 1 | os: linux |
| 2 | dist: jammy |
| 3 | language: c |
| 4 | compiler: |
| 5 | - gcc |
| 6 | cache: |
| 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" |
| 20 | notifications: |
| 21 | irc: |
| 22 | channels: |
| 23 | - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM=" |
| 24 | on_success: change |
| 25 | on_failure: always |
| 26 | |
| 27 | |
| 28 | env: |
| 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 | |
| 42 | git: |
| 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 |
| 49 | before_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 |
| 55 | before_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 |
| 60 | script: |
| 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 |
| 74 | after_script: |
| 75 | - df -h |
| 76 | - if command -v ccache ; then ccache --show-stats ; fi |
| 77 | |
| 78 | |
| 79 | jobs: |
| 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++" |