blob: ad81bc5e1b409f2277afff0c76ef8d7e1c74b65a [file] [log] [blame]
Wainer dos Santos Moschetta321e6ea2020-02-25 12:46:57 +00001os: linux
Thomas Huth66163bc2024-04-18 12:10:48 +02002dist: jammy
Alex Bennéefe863ab2013-11-06 10:43:37 +00003language: c
Alex Bennéefe863ab2013-11-06 10:43:37 +00004compiler:
5 - gcc
Philippe Mathieu-Daudé4bc629b2019-09-03 15:26:40 +02006cache:
Philippe Mathieu-Daudé5ef9c532019-09-03 15:26:46 +02007 # There is one cache per branch and compiler version.
8 # characteristics of each job are used to identify the cache:
Alex Bennée22a23192020-05-01 12:15:03 +01009 # - OS name (currently only linux)
Thomas Huth66163bc2024-04-18 12:10:48 +020010 # - OS distribution (e.g. "jammy" for Linux)
Philippe Mathieu-Daudé5ef9c532019-09-03 15:26:46 +020011 # - Names and values of visible environment variables set in .travis.yml or Settings panel
Philippe Mathieu-Daudé731cbb62019-09-03 15:26:41 +020012 timeout: 1200
Philippe Mathieu-Daudé4bc629b2019-09-03 15:26:40 +020013 ccache: true
Philippe Mathieu-Daudé6e189d72019-09-03 15:26:42 +020014 pip: true
Daniel P. Berrangé197be692019-01-09 16:31:06 +000015
16
Pranith Kumarcb4c2532016-06-27 14:13:22 -040017# 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"
Alex Bennée39d16d22014-03-12 14:13:53 +000020notifications:
21 irc:
22 channels:
Pranith Kumarcb4c2532016-06-27 14:13:22 -040023 - secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
Alex Bennée39d16d22014-03-12 14:13:53 +000024 on_success: change
25 on_failure: always
Daniel P. Berrangé197be692019-01-09 16:31:06 +000026
27
Alex Bennéefe863ab2013-11-06 10:43:37 +000028env:
29 global:
Paolo Bonzinibc4486f2019-12-11 15:33:49 +010030 - SRC_DIR=".."
31 - BUILD_DIR="build"
Alex Bennée570f3c72019-02-01 17:12:29 +000032 - BASE_CONFIG="--disable-docs --disable-tools"
Alex Bennée4f46afd2020-02-03 09:09:29 +000033 - TEST_BUILD_CMD=""
Alex Bennée05273a42019-11-07 10:47:03 +000034 - TEST_CMD="make check V=1"
Philippe Mathieu-Daudé27703592023-10-04 11:06:17 +020035 # This is broadly a list of "mainline" system targets which have support across the major distros
Philippe Mathieu-Daudéaebe0a82024-03-13 22:33:29 +010036 - MAIN_SYSTEM_TARGETS="aarch64-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
Philippe Mathieu-Daudébcfbf0d2019-09-03 15:26:44 +020037 - CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
38 - CCACHE_MAXSIZE=1G
Philippe Mathieu-Daudé2dbd39c2020-03-16 17:21:32 +000039 - G_MESSAGES_DEBUG=error
Philippe Mathieu-Daudébcfbf0d2019-09-03 15:26:44 +020040
Daniel P. Berrangé197be692019-01-09 16:31:06 +000041
Alex Bennéecb021cf2014-09-24 11:13:55 +010042git:
43 # we want to do this ourselves
44 submodules: false
Daniel P. Berrangé197be692019-01-09 16:31:06 +000045
Alex Bennéeb3165c82020-02-03 09:09:25 +000046# Common first phase for all steps
Thomas Huthfc424182021-02-17 12:19:31 +000047# We no longer use nproc to calculate jobs:
48# https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851
Alex Bennéeb3165c82020-02-03 09:09:25 +000049before_install:
Thomas Huth312995c2019-10-09 19:07:00 +020050 - if command -v ccache ; then ccache --zero-stats ; fi
Thomas Huthfc424182021-02-17 12:19:31 +000051 - export JOBS=3
Alex Bennée0a7c0ae2020-02-03 09:09:26 +000052 - echo "=== Using ${JOBS} simultaneous jobs ==="
Alex Bennéeb3165c82020-02-03 09:09:25 +000053
54# Configure step - may be overridden
55before_script:
Philippe Mathieu-Daudéebf2ff62018-06-21 09:26:37 -030056 - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
Paolo Bonzinic47110d2020-10-16 05:49:28 -040057 - ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log meson-logs/meson-log.txt && exit 1; }
Alex Bennéeb3165c82020-02-03 09:09:25 +000058
59# Main build & test - rarely overridden - controlled by TEST_CMD
Alex Bennéeeebf2942014-09-24 11:13:54 +010060script:
Alex Bennée0a7c0ae2020-02-03 09:09:26 +000061 - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
Alex Bennée4f46afd2020-02-03 09:09:29 +000062 - |
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
Alex Bennéeec49faa2020-02-03 09:09:30 +000068 - |
69 if [ "$BUILD_RC" -eq 0 ] ; then
70 ${TEST_CMD} ;
71 else
72 $(exit $BUILD_RC);
73 fi
Philippe Mathieu-Daudébcfbf0d2019-09-03 15:26:44 +020074after_script:
Alex Bennée4f8bde52020-05-01 12:15:02 +010075 - df -h
Thomas Huth312995c2019-10-09 19:07:00 +020076 - if command -v ccache ; then ccache --show-stats ; fi
Daniel P. Berrangé197be692019-01-09 16:31:06 +000077
78
Wainer dos Santos Moschetta321e6ea2020-02-25 12:46:57 +000079jobs:
Alex Bennéefe863ab2013-11-06 10:43:37 +000080 include:
Daniel P. Berrangé3e094232019-01-09 16:31:07 +000081
Philippe Mathieu-Daudé097aebd2020-02-03 09:09:23 +000082 - name: "[aarch64] GCC check-tcg"
83 arch: arm64
Thomas Huth9c5941a2019-12-04 16:46:18 +010084 addons:
85 apt_packages:
86 - libaio-dev
87 - libattr1-dev
88 - libbrlapi-dev
Daniel P. Berrangé51f5c842021-07-09 15:29:34 +010089 - libcacard-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +010090 - libcap-ng-dev
Thomas Huth769897b2023-01-20 08:53:30 +010091 - libfdt-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +010092 - libgcrypt20-dev
93 - libgnutls28-dev
94 - libgtk-3-dev
95 - libiscsi-dev
96 - liblttng-ust-dev
97 - libncurses5-dev
98 - libnfs-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +010099 - libpixman-1-dev
100 - libpng-dev
101 - librados-dev
102 - libsdl2-dev
103 - libseccomp-dev
104 - liburcu-dev
105 - libusb-1.0-0-dev
106 - libvdeplug-dev
107 - libvte-2.91-dev
Paolo Bonzini345d7052020-08-13 09:58:50 -0400108 - ninja-build
Thomas Huth5e8881c2024-06-24 11:48:07 +0200109 - python3-tomli
Wainer dos Santos Moschetta58a1e5b2020-02-03 09:09:19 +0000110 # Tests dependencies
111 - genisoimage
Thomas Huth9c5941a2019-12-04 16:46:18 +0100112 env:
113 - TEST_CMD="make check check-tcg V=1"
Thomas Huth769897b2023-01-20 08:53:30 +0100114 - CONFIG="--disable-containers --enable-fdt=system
Philippe Mathieu-Daudéaebe0a82024-03-13 22:33:29 +0100115 --target-list=${MAIN_SYSTEM_TARGETS} --cxx=/bin/false"
Thomas Huth9c5941a2019-12-04 16:46:18 +0100116
Thomas Huth4d6ae2d2024-03-20 11:41:44 +0100117 - name: "[ppc64] Clang check-tcg"
Philippe Mathieu-Daudé097aebd2020-02-03 09:09:23 +0000118 arch: ppc64le
Thomas Huth4d6ae2d2024-03-20 11:41:44 +0100119 compiler: clang
Thomas Huth9c5941a2019-12-04 16:46:18 +0100120 addons:
121 apt_packages:
122 - libaio-dev
123 - libattr1-dev
124 - libbrlapi-dev
Daniel P. Berrangé51f5c842021-07-09 15:29:34 +0100125 - libcacard-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100126 - libcap-ng-dev
Thomas Huth769897b2023-01-20 08:53:30 +0100127 - libfdt-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100128 - libgcrypt20-dev
129 - libgnutls28-dev
130 - libgtk-3-dev
131 - libiscsi-dev
132 - liblttng-ust-dev
133 - libncurses5-dev
134 - libnfs-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100135 - 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
Paolo Bonzini345d7052020-08-13 09:58:50 -0400144 - ninja-build
Thomas Huth5e8881c2024-06-24 11:48:07 +0200145 - python3-tomli
Wainer dos Santos Moschetta58a1e5b2020-02-03 09:09:19 +0000146 # Tests dependencies
147 - genisoimage
Thomas Huth9c5941a2019-12-04 16:46:18 +0100148 env:
149 - TEST_CMD="make check check-tcg V=1"
Thomas Huth769897b2023-01-20 08:53:30 +0100150 - CONFIG="--disable-containers --enable-fdt=system
151 --target-list=ppc64-softmmu,ppc64le-linux-user"
Thomas Huth9c5941a2019-12-04 16:46:18 +0100152
Philippe Mathieu-Daudé097aebd2020-02-03 09:09:23 +0000153 - name: "[s390x] GCC check-tcg"
154 arch: s390x
Thomas Huth9c5941a2019-12-04 16:46:18 +0100155 addons:
156 apt_packages:
157 - libaio-dev
158 - libattr1-dev
159 - libbrlapi-dev
Daniel P. Berrangé51f5c842021-07-09 15:29:34 +0100160 - libcacard-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100161 - libcap-ng-dev
Thomas Huth769897b2023-01-20 08:53:30 +0100162 - libfdt-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100163 - libgcrypt20-dev
164 - libgnutls28-dev
165 - libgtk-3-dev
166 - libiscsi-dev
167 - liblttng-ust-dev
168 - libncurses5-dev
169 - libnfs-dev
Thomas Huth9c5941a2019-12-04 16:46:18 +0100170 - libpixman-1-dev
171 - libpng-dev
172 - librados-dev
173 - libsdl2-dev
174 - libseccomp-dev
175 - liburcu-dev
176 - libusb-1.0-0-dev
177 - libvdeplug-dev
178 - libvte-2.91-dev
Paolo Bonzini345d7052020-08-13 09:58:50 -0400179 - ninja-build
Thomas Huth5e8881c2024-06-24 11:48:07 +0200180 - python3-tomli
Wainer dos Santos Moschetta58a1e5b2020-02-03 09:09:19 +0000181 # Tests dependencies
182 - genisoimage
Thomas Huth9c5941a2019-12-04 16:46:18 +0100183 env:
184 - TEST_CMD="make check check-tcg V=1"
Thomas Huth02355402024-03-20 11:41:39 +0100185 - CONFIG="--disable-containers
186 --target-list=hppa-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
Thomas Huth31c8cc42020-02-25 12:46:56 +0000187 script:
Thomas Huth31c8cc42020-02-25 12:46:56 +0000188 - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$?
189 - |
190 if [ "$BUILD_RC" -eq 0 ] ; then
Akihiko Odaki882084a2022-06-24 23:50:38 +0900191 mv pc-bios/s390-ccw/*.img qemu-bundle/usr/local/share/qemu ;
Thomas Huth31c8cc42020-02-25 12:46:56 +0000192 ${TEST_CMD} ;
193 else
194 $(exit $BUILD_RC);
195 fi
Philippe Mathieu-Daudé61ac3dc2019-10-07 18:04:49 +0200196
Thomas Huth4d6ae2d2024-03-20 11:41:44 +0100197 - name: "[s390x] Clang (other-system)"
Thomas Huth100a5ef2020-06-08 13:40:49 +0200198 arch: s390x
Thomas Huth4d6ae2d2024-03-20 11:41:44 +0100199 compiler: clang
Thomas Huth100a5ef2020-06-08 13:40:49 +0200200 addons:
201 apt_packages:
202 - libaio-dev
203 - libattr1-dev
Daniel P. Berrangé51f5c842021-07-09 15:29:34 +0100204 - libcacard-dev
Thomas Huth100a5ef2020-06-08 13:40:49 +0200205 - libcap-ng-dev
Thomas Huth769897b2023-01-20 08:53:30 +0100206 - libfdt-dev
Thomas Huth100a5ef2020-06-08 13:40:49 +0200207 - libgnutls28-dev
208 - libiscsi-dev
209 - liblttng-ust-dev
210 - liblzo2-dev
211 - libncurses-dev
212 - libnfs-dev
Thomas Huth100a5ef2020-06-08 13:40:49 +0200213 - libpixman-1-dev
214 - libsdl2-dev
215 - libsdl2-image-dev
216 - libseccomp-dev
217 - libsnappy-dev
218 - libzstd-dev
219 - nettle-dev
Paolo Bonzini345d7052020-08-13 09:58:50 -0400220 - ninja-build
Thomas Huth5e8881c2024-06-24 11:48:07 +0200221 - python3-tomli
Thomas Huth100a5ef2020-06-08 13:40:49 +0200222 # Tests dependencies
223 - genisoimage
224 env:
Thomas Huth02355402024-03-20 11:41:39 +0100225 - CONFIG="--disable-containers --audio-drv-list=sdl --disable-user
Thomas Huth73ceb122024-09-26 12:58:43 +0200226 --target-list=arm-softmmu,avr-softmmu,microblaze-softmmu,sh4-softmmu,sparc64-softmmu,xtensaeb-softmmu"
Dr. David Alan Gilbertdb727a12022-07-20 09:25:47 +0100227
Thomas Huth100a5ef2020-06-08 13:40:49 +0200228 - name: "[s390x] GCC (user)"
229 arch: s390x
Thomas Huth100a5ef2020-06-08 13:40:49 +0200230 addons:
231 apt_packages:
232 - libgcrypt20-dev
Thomas Huthe7b3b092022-02-21 16:34:23 +0100233 - libglib2.0-dev
Thomas Huth100a5ef2020-06-08 13:40:49 +0200234 - libgnutls28-dev
Paolo Bonzini345d7052020-08-13 09:58:50 -0400235 - ninja-build
Vaibhav Jaine23130f2023-04-17 21:53:54 +0530236 - flex
237 - bison
Thomas Huth5e8881c2024-06-24 11:48:07 +0200238 - python3-tomli
Thomas Huth100a5ef2020-06-08 13:40:49 +0200239 env:
Thomas Huth02355402024-03-20 11:41:39 +0100240 - TEST_CMD="make check check-tcg V=1"
Thomas Huth100a5ef2020-06-08 13:40:49 +0200241 - CONFIG="--disable-containers --disable-system"
Dr. David Alan Gilbertdb727a12022-07-20 09:25:47 +0100242
Thomas Huthaae8b872020-05-13 18:51:26 +0100243 - name: "[s390x] Clang (disable-tcg)"
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000244 arch: s390x
Thomas Huth66163bc2024-04-18 12:10:48 +0200245 compiler: clang
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000246 addons:
247 apt_packages:
248 - libaio-dev
249 - libattr1-dev
250 - libbrlapi-dev
Daniel P. Berrangé51f5c842021-07-09 15:29:34 +0100251 - libcacard-dev
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000252 - libcap-ng-dev
Thomas Huth769897b2023-01-20 08:53:30 +0100253 - libfdt-dev
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000254 - libgcrypt20-dev
255 - libgnutls28-dev
256 - libgtk-3-dev
257 - libiscsi-dev
258 - liblttng-ust-dev
259 - libncurses5-dev
260 - libnfs-dev
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000261 - libpixman-1-dev
262 - libpng-dev
263 - librados-dev
264 - libsdl2-dev
265 - libseccomp-dev
266 - liburcu-dev
267 - libusb-1.0-0-dev
268 - libvdeplug-dev
269 - libvte-2.91-dev
Paolo Bonzini345d7052020-08-13 09:58:50 -0400270 - ninja-build
Thomas Huth5e8881c2024-06-24 11:48:07 +0200271 - python3-tomli
Philippe Mathieu-Daudé41e1f0e2020-03-23 16:15:14 +0000272 env:
273 - TEST_CMD="make check-unit"
Thomas Huth769897b2023-01-20 08:53:30 +0100274 - CONFIG="--disable-containers --disable-tcg --enable-kvm --disable-tools
275 --enable-fdt=system --host-cc=clang --cxx=clang++"