blob: 23bb69e24d7f45cfee3492a5e18ed93032a9a166 [file] [log] [blame]
Thomas Huth14eb0482022-12-06 11:40:03 +01001image: fedora:37
Thomas Huthd81f73b2019-05-27 13:28:53 +02002
Thomas Huthdd095732019-02-28 18:11:03 +01003before_script:
Thomas Huthd81f73b2019-05-27 13:28:53 +02004 - dnf update -y
5 - dnf install -y make python
Thomas Huthdd095732019-02-28 18:11:03 +01006
Thomas Huthbd2daad2023-04-03 11:32:55 +02007.intree_template:
8 artifacts:
9 expire_in: 2 days
10 paths:
11 - logs
12
13.outoftree_template:
14 artifacts:
15 expire_in: 2 days
16 paths:
17 - build/logs
18
Thomas Huthdd095732019-02-28 18:11:03 +010019build-aarch64:
Thomas Huthbd2daad2023-04-03 11:32:55 +020020 extends: .intree_template
Thomas Huthdd095732019-02-28 18:11:03 +010021 script:
Thomas Huthd81f73b2019-05-27 13:28:53 +020022 - dnf install -y qemu-system-aarch64 gcc-aarch64-linux-gnu
Thomas Huthdd095732019-02-28 18:11:03 +010023 - ./configure --arch=aarch64 --cross-prefix=aarch64-linux-gnu-
24 - make -j2
Thomas Huthc3df00e2020-07-01 12:06:15 +020025 - ACCEL=tcg MAX_SMP=8 ./run_tests.sh
Thomas Huth14eb0482022-12-06 11:40:03 +010026 cache
27 debug-bp
28 debug-sstep
29 debug-wp
30 gicv2-active
31 gicv2-ipi
32 gicv2-mmio
33 gicv3-active
34 gicv3-ipi
35 its-introspection
36 its-trigger
37 pci-test
38 pmu-cycle-counter
39 pmu-event-counter-config
40 pmu-sw-incr
Thomas Huth14eb0482022-12-06 11:40:03 +010041 selftest-setup
42 selftest-smp
43 selftest-vectors-kernel
44 selftest-vectors-user
45 timer
46 | tee results.txt
Andrew Jonesdd797282024-03-05 17:46:42 +010047 - grep -q PASS results.txt && ! grep -q FAIL results.txt
48
49build-aarch64-efi:
50 extends: .intree_template
51 script:
52 - dnf install -y qemu-system-aarch64 gcc-aarch64-linux-gnu edk2-aarch64
53 - ./configure --arch=aarch64 --cross-prefix=aarch64-linux-gnu- --enable-efi --enable-efi-direct
54 - make -j2
55 - ACCEL=tcg MAX_SMP=8 ./run_tests.sh
56 selftest-setup
57 selftest-smp
58 selftest-vectors-kernel
59 selftest-vectors-user
60 | tee results.txt
61 - grep -q PASS results.txt && ! grep -q FAIL results.txt
62
63build-aarch64-efi-acpi:
64 extends: .intree_template
65 script:
66 - dnf install -y qemu-system-aarch64 gcc-aarch64-linux-gnu edk2-aarch64
67 - ./configure --arch=aarch64 --cross-prefix=aarch64-linux-gnu- --enable-efi --enable-efi-direct
68 - make -j2
69 - EFI_USE_ACPI=y ACCEL=tcg MAX_SMP=8 ./run_tests.sh
70 selftest-setup
71 selftest-smp
72 selftest-vectors-kernel
73 selftest-vectors-user
74 | tee results.txt
75 - grep -q PASS results.txt && ! grep -q FAIL results.txt
Thomas Huthdd095732019-02-28 18:11:03 +010076
77build-arm:
Thomas Huthbd2daad2023-04-03 11:32:55 +020078 extends: .outoftree_template
Thomas Huthdd095732019-02-28 18:11:03 +010079 script:
Andrew Jonesefd13c32019-11-28 15:24:10 +010080 - dnf install -y qemu-system-arm gcc-arm-linux-gnu
Thomas Huth13fc88a2020-07-31 11:41:39 +020081 - mkdir build
82 - cd build
83 - ../configure --arch=arm --cross-prefix=arm-linux-gnu-
Thomas Huthdd095732019-02-28 18:11:03 +010084 - make -j2
Thomas Huthc3df00e2020-07-01 12:06:15 +020085 - ACCEL=tcg MAX_SMP=8 ./run_tests.sh
Thomas Huthdd095732019-02-28 18:11:03 +010086 selftest-setup selftest-vectors-kernel selftest-vectors-user selftest-smp
Thomas Huthc3df00e2020-07-01 12:06:15 +020087 pci-test pmu-cycle-counter gicv2-ipi gicv2-mmio gicv3-ipi gicv2-active
Andrew Jones892e40f2023-06-23 17:32:26 +020088 gicv3-active
Thomas Huthdd095732019-02-28 18:11:03 +010089 | tee results.txt
Andrew Jonesdd797282024-03-05 17:46:42 +010090 - grep -q PASS results.txt && ! grep -q FAIL results.txt
Thomas Huthdd095732019-02-28 18:11:03 +010091
92build-ppc64be:
Thomas Huthbd2daad2023-04-03 11:32:55 +020093 extends: .outoftree_template
Thomas Huthdd095732019-02-28 18:11:03 +010094 script:
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +100095 - dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
Thomas Huth13fc88a2020-07-31 11:41:39 +020096 - mkdir build
97 - cd build
98 - ../configure --arch=ppc64 --endian=big --cross-prefix=powerpc64-linux-gnu-
Thomas Huthdd095732019-02-28 18:11:03 +010099 - make -j2
100 - ACCEL=tcg ./run_tests.sh
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000101 selftest-setup
102 selftest-migration
103 selftest-migration-skip
104 spapr_hcall
105 rtas-get-time-of-day
106 rtas-get-time-of-day-base
107 rtas-set-time-of-day
108 emulator
109 | tee results.txt
Thomas Huthdd095732019-02-28 18:11:03 +0100110 - if grep -q FAIL results.txt ; then exit 1 ; fi
111
112build-ppc64le:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200113 extends: .intree_template
Thomas Huthdd095732019-02-28 18:11:03 +0100114 script:
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000115 - dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
Thomas Huthdd095732019-02-28 18:11:03 +0100116 - ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-
117 - make -j2
118 - ACCEL=tcg ./run_tests.sh
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000119 selftest-setup
120 selftest-migration
121 selftest-migration-skip
122 spapr_hcall
123 rtas-get-time-of-day
124 rtas-get-time-of-day-base
125 rtas-set-time-of-day
126 emulator
127 | tee results.txt
Thomas Huthdd095732019-02-28 18:11:03 +0100128 - if grep -q FAIL results.txt ; then exit 1 ; fi
129
Andrew Jonesbf9496e2023-10-08 10:53:52 +0200130# build-riscv32:
131# Fedora doesn't package a riscv32 compiler for QEMU. Oh, well.
132
133# Select 'rv64' with PROCESSOR_OVERRIDE in case QEMU is too old to have 'max'
134build-riscv64:
135 extends: .intree_template
136 script:
137 - dnf install -y qemu-system-riscv gcc-riscv64-linux-gnu
138 - ./configure --arch=riscv64 --cross-prefix=riscv64-linux-gnu-
139 - make -j2
140 - printf "FOO=foo\nBAR=bar\nBAZ=baz\nMVENDORID=0\n" >test-env
141 - PROCESSOR_OVERRIDE=rv64 ACCEL=tcg KVM_UNIT_TESTS_ENV=test-env ./run_tests.sh
142 selftest
143 sbi
144 | tee results.txt
145 - grep -q PASS results.txt && ! grep -q FAIL results.txt
146
Thomas Huthdd095732019-02-28 18:11:03 +0100147build-s390x:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200148 extends: .outoftree_template
Thomas Huthdd095732019-02-28 18:11:03 +0100149 script:
Thomas Huthd81f73b2019-05-27 13:28:53 +0200150 - dnf install -y qemu-system-s390x gcc-s390x-linux-gnu
Thomas Huth1a842322021-07-16 12:52:19 +0200151 - mkdir build
152 - cd build
153 - ../configure --arch=s390x --cross-prefix=s390x-linux-gnu-
Thomas Huthdd095732019-02-28 18:11:03 +0100154 - make -j2
Thomas Huthd81f73b2019-05-27 13:28:53 +0200155 - ACCEL=tcg ./run_tests.sh
Thomas Huth14eb0482022-12-06 11:40:03 +0100156 adtl-status-no-vec-no-gs-tcg
157 adtl-status-tcg
158 cpumodel
159 css
160 diag10
161 diag288
162 diag308
163 edat
164 emulator
165 epsw
166 exittime
167 firq-linear-cpu-ids-tcg
168 firq-nonlinear-cpu-ids-tcg
169 iep
170 intercept
171 mvpg
172 sck
173 sclp-1g
174 sclp-3g
175 selftest-setup
176 sieve
177 smp
178 stsi
179 tprot
180 vector
181 | tee results.txt
Thomas Huthd81f73b2019-05-27 13:28:53 +0200182 - if grep -q FAIL results.txt ; then exit 1 ; fi
Thomas Huthdd095732019-02-28 18:11:03 +0100183
184build-x86_64:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200185 extends: .intree_template
Thomas Huthdd095732019-02-28 18:11:03 +0100186 script:
Thomas Huthd81f73b2019-05-27 13:28:53 +0200187 - dnf install -y qemu-system-x86 gcc
Thomas Huthdd095732019-02-28 18:11:03 +0100188 - ./configure --arch=x86_64
189 - make -j2
190 - ACCEL=tcg ./run_tests.sh
Thomas Huth14eb0482022-12-06 11:40:03 +0100191 eventinj
192 intel_iommu
193 ioapic-split
194 memory
195 pks
196 pku
197 rdpru
198 realmode
199 rmap_chain
200 setjmp
201 sieve
202 smap
203 smptest
204 smptest3
205 syscall
206 tsc
207 umip
208 vmexit_cpuid
209 vmexit_cr0_wp
210 vmexit_cr4_pge
211 vmexit_inl_pmtimer
212 vmexit_ipi
213 vmexit_ipi_halt
214 vmexit_mov_from_cr8
215 vmexit_mov_to_cr8
216 vmexit_ple_round_robin
217 vmexit_tscdeadline
218 vmexit_tscdeadline_immed
219 xsave
220 | tee results.txt
Thomas Huthdd095732019-02-28 18:11:03 +0100221 - if grep -q FAIL results.txt ; then exit 1 ; fi
222
223build-i386:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200224 extends: .outoftree_template
Thomas Huthdd095732019-02-28 18:11:03 +0100225 script:
Thomas Huthd81f73b2019-05-27 13:28:53 +0200226 - dnf install -y qemu-system-x86 gcc
Thomas Huth13fc88a2020-07-31 11:41:39 +0200227 - mkdir build
228 - cd build
229 - ../configure --arch=i386
Thomas Huthdd095732019-02-28 18:11:03 +0100230 - make -j2
231 - ACCEL=tcg ./run_tests.sh
Thomas Huth14eb0482022-12-06 11:40:03 +0100232 cmpxchg8b
233 eventinj
234 realmode
235 setjmp
236 sieve
237 smap
238 smptest
239 smptest3
240 taskswitch
241 tsc
242 umip
243 vmexit_cpuid
244 vmexit_cr0_wp
245 vmexit_cr4_pge
246 vmexit_inl_pmtimer
247 vmexit_ipi
248 vmexit_ipi_halt
249 vmexit_mov_from_cr8
250 vmexit_mov_to_cr8
251 vmexit_ple_round_robin
252 vmexit_tscdeadline
253 vmexit_tscdeadline_immed
254 | tee results.txt
Thomas Huthdd095732019-02-28 18:11:03 +0100255 - if grep -q FAIL results.txt ; then exit 1 ; fi
Thomas Huth417ecf42020-05-13 11:54:46 +0200256
257build-clang:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200258 extends: .intree_template
Thomas Huth417ecf42020-05-13 11:54:46 +0200259 script:
260 - dnf install -y qemu-system-x86 clang
261 - ./configure --arch=x86_64 --cc=clang
262 - make -j2
263 - ACCEL=tcg ./run_tests.sh
Thomas Huth14eb0482022-12-06 11:40:03 +0100264 eventinj
265 intel_iommu
266 ioapic-split
267 memory
268 pks
269 pku
270 rdpru
271 realmode
272 rmap_chain
273 setjmp
274 sieve
275 smap
276 smptest
277 smptest3
278 syscall
279 tsc
280 umip
281 vmexit_cpuid
282 vmexit_cr0_wp
283 vmexit_cr4_pge
284 vmexit_inl_pmtimer
285 vmexit_ipi
286 vmexit_ipi_halt
287 vmexit_mov_from_cr8
288 vmexit_mov_to_cr8
289 vmexit_ple_round_robin
290 vmexit_tscdeadline
291 vmexit_tscdeadline_immed
292 xsave
293 | tee results.txt
Thomas Huth417ecf42020-05-13 11:54:46 +0200294 - grep -q PASS results.txt && ! grep -q FAIL results.txt
Thomas Huth0079fe82020-07-31 11:15:48 +0200295
296build-centos7:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200297 extends: .outoftree_template
Thomas Huth0079fe82020-07-31 11:15:48 +0200298 image: centos:7
299 before_script:
300 - yum update -y
301 - yum install -y make python qemu-kvm gcc
302 script:
303 - mkdir build
304 - cd build
305 - ../configure --arch=x86_64 --disable-pretty-print-stacks
306 - make -j2
307 - ACCEL=tcg ./run_tests.sh
Sean Christopherson88f0bb12021-04-21 20:05:03 -0700308 vmexit_cpuid vmexit_mov_from_cr8 vmexit_mov_to_cr8 vmexit_inl_pmtimer
Thomas Huth0079fe82020-07-31 11:15:48 +0200309 vmexit_ple_round_robin vmexit_tscdeadline vmexit_tscdeadline_immed port80
310 setjmp sieve tsc rmap_chain umip
311 | tee results.txt
312 - grep -q PASS results.txt && ! grep -q FAIL results.txt
Thomas Huth990955e2021-01-15 23:30:17 +0100313
314# Cirrus-CI provides containers with macOS and Linux with KVM enabled,
315# so we can test some scenarios there that are not possible with the
316# gitlab-CI shared runners. We use the "cirrus-run" container from the
317# libvirt project to start the jobs. See the following URL for more
318# information how to set up your environment to use these containers:
319#
320# https://gitlab.com/libvirt/libvirt/-/blob/v7.0.0/ci/README.rst
321#
322.cirrus_build_job_template: &cirrus_build_job_definition
Thomas Huth66307922024-04-15 15:03:21 +0200323 image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:latest
Thomas Huth990955e2021-01-15 23:30:17 +0100324 before_script:
325 - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
326 -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
327 -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
328 < ci/$CI_JOB_NAME.yml > ci/_$CI_JOB_NAME.yml
329 script:
330 - cirrus-run -v --show-build-log always ci/_$CI_JOB_NAME.yml
331 only:
332 variables:
333 - $CIRRUS_GITHUB_REPO
334 - $CIRRUS_API_TOKEN
335
336cirrus-ci-fedora:
337 <<: *cirrus_build_job_definition
338
339cirrus-ci-macos-i386:
340 <<: *cirrus_build_job_definition
341
342cirrus-ci-macos-x86-64:
343 <<: *cirrus_build_job_definition
Marcelo Bandeira Condotta21eb9662021-02-08 12:02:27 -0300344
345s390x-kvm:
Thomas Huthbd2daad2023-04-03 11:32:55 +0200346 extends: .intree_template
Marcelo Bandeira Condotta21eb9662021-02-08 12:02:27 -0300347 before_script: []
348 tags:
349 - s390x-z15-vm
350 script:
351 - ./configure --arch=s390x
352 - make -j$(nproc)
Thomas Huth64a9b492021-02-09 09:18:30 +0100353 - ACCEL=kvm ./run_tests.sh
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000354 selftest-setup
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000355 selftest-migration-skip
356 cmm
357 cpumodel
358 css
359 diag10
360 diag288
361 diag308
362 emulator
Nina Schoetterl-Glausch9a5a73a2023-03-17 12:23:39 +0100363 execute
Nicholas Piggin3ccb19a2024-04-05 18:35:07 +1000364 gs
365 iep
366 intercept
367 migration
368 migration-memory
369 migration-sck
370 migration-skey-parallel
371 migration-skey-sequential
372 pfmf
373 sclp-1g
374 sclp-3g
375 sie
376 sieve
377 skrf
378 sthyi
379 stsi
380 vector
Thomas Huth64a9b492021-02-09 09:18:30 +0100381 | tee results.txt
Marcelo Bandeira Condotta21eb9662021-02-08 12:02:27 -0300382 - grep -q PASS results.txt && ! grep -q FAIL results.txt
383 only:
384 variables:
385 - $S390X_Z15_RUNNER_AVAILABLE