.travis.yml 7.6 KB

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