34fd92ab41
- git ignore some file editor detritus - add overview on device emulation terminology - remove needless if leg in configure custom devices logic - numerous gitdm/mailmap updates - fix plugin_exit race for linux-user - fix a few bugs in cache modelling plugin - fix plugin calculation of physical address - handle pure assembler/linker tcg tests outside of docker - add tricore build to gitlab - remove superfluous MacOSX task - generalise the OpenBSI gitlab rules -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmD67ioACgkQ+9DbCVqe KkTKcwf/UlEl2wlYrvymoJy7caasD/UrlNwpaK90zRTxuofJjG2bXX/58EGBlgxe cjbX3841702HXAFDxzswmWX3yeXQVgNiXrEy5FapB7L3h/qC/BDVS4pz987TITNW b4lw/d05bQVGavcdJXPnX0CdV8IK4hpieDkdh/LGj5+CSAC39jvyVGTYBpfLKl8D cps5qcJcJuQjz4hatB1haZOV1WHLyw8KI0srfcEqkh3IImZFZ09frs3qqAxrYRqE Y62d7SIN5TX1XgWuTaf1mmaMVmbNi9DTdCxWpGYr4ZBLhhzKeljQvKbF45ZGQ0z9 eBVBdxGJTX/WAKrimcbHxLo43pCo2Q== =7vzj -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-for-6.1-rc1-230721-1' into staging Doc, metadata, plugin and testing updates for 6.1-rc1: - git ignore some file editor detritus - add overview on device emulation terminology - remove needless if leg in configure custom devices logic - numerous gitdm/mailmap updates - fix plugin_exit race for linux-user - fix a few bugs in cache modelling plugin - fix plugin calculation of physical address - handle pure assembler/linker tcg tests outside of docker - add tricore build to gitlab - remove superfluous MacOSX task - generalise the OpenBSI gitlab rules # gpg: Signature made Fri 23 Jul 2021 17:28:26 BST # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-for-6.1-rc1-230721-1: (28 commits) gitlab-ci: Extract OpenSBI job rules to reusable section gitlab-ci: Remove the second superfluous macos task gitlab: enable a very minimal build with the tricore container tests/tcg/configure.sh: add handling for assembler only builds plugins: Fix physical address calculation for IO regions plugins/cache: Fixed "function decl. is not a prototype" warnings plugins/cache: limited the scope of a mutex lock plugins/cache: Fixed a bug with destroying FIFO metadata tcg/plugins: implement a qemu_plugin_user_exit helper contrib/gitdm: add more individual contributor entries. contrib/gitdm: add a new interns group-map for GSoC/Outreachy work contrib/gitdm: add an explicit academic entry for BU contrib/gitdm: add group-map for Netflix contrib/gitdm: add domain-map for NVIDIA contrib/gitdm: add domain-map for Crudebyte contrib/gitdm: un-ironically add a mapping for LWN contrib/gitdm: add domain-map/group-map for Wind River contrib/gitdm: add domain-map for Eldorado contrib/gitdm: add domain-map/group-map mappings for Samsung gitdm.config: sort the corporate GroupMap entries ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
713 lines
20 KiB
YAML
713 lines
20 KiB
YAML
include:
|
|
- local: '/.gitlab-ci.d/buildtest-template.yml'
|
|
|
|
build-system-alpine:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
- job: amd64-alpine-container
|
|
variables:
|
|
IMAGE: alpine
|
|
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
|
microblazeel-softmmu mips64el-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- .git-submodule-status
|
|
- build
|
|
|
|
check-system-alpine:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-alpine
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: alpine
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-alpine:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-alpine
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: alpine
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-system-ubuntu:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-ubuntu2004-container
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
|
|
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
|
microblazeel-softmmu mips64el-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-ubuntu:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-ubuntu
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-ubuntu:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-ubuntu
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-system-debian:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-container
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
CONFIGURE_ARGS: --enable-fdt=system
|
|
TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
|
|
riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-debian:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-debian:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-system-fedora:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-fedora-container
|
|
variables:
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
|
|
--enable-fdt=system --enable-slirp=system --enable-capstone=system
|
|
TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
|
|
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-fedora:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-fedora:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-system-centos:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-centos8-container
|
|
variables:
|
|
IMAGE: centos8
|
|
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
|
|
--enable-modules --enable-trace-backends=dtrace
|
|
TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
|
|
x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-centos:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-centos
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos8
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-centos:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-centos
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos8
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-system-opensuse:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-opensuse-leap-container
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
CONFIGURE_ARGS: --enable-fdt=system
|
|
TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-opensuse:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-opensuse
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-opensuse:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-system-opensuse
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
|
|
build-disabled:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-fedora-container
|
|
variables:
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS:
|
|
--disable-attr
|
|
--disable-auth-pam
|
|
--disable-avx2
|
|
--disable-bochs
|
|
--disable-brlapi
|
|
--disable-bzip2
|
|
--disable-cap-ng
|
|
--disable-capstone
|
|
--disable-cloop
|
|
--disable-coroutine-pool
|
|
--disable-curl
|
|
--disable-curses
|
|
--disable-dmg
|
|
--disable-docs
|
|
--disable-gcrypt
|
|
--disable-glusterfs
|
|
--disable-gnutls
|
|
--disable-gtk
|
|
--disable-guest-agent
|
|
--disable-iconv
|
|
--disable-keyring
|
|
--disable-kvm
|
|
--disable-libiscsi
|
|
--disable-libpmem
|
|
--disable-libssh
|
|
--disable-libudev
|
|
--disable-libusb
|
|
--disable-libxml2
|
|
--disable-linux-aio
|
|
--disable-live-block-migration
|
|
--disable-lzo
|
|
--disable-malloc-trim
|
|
--disable-mpath
|
|
--disable-nettle
|
|
--disable-numa
|
|
--disable-opengl
|
|
--disable-parallels
|
|
--disable-pie
|
|
--disable-qcow1
|
|
--disable-qed
|
|
--disable-qom-cast-debug
|
|
--disable-rbd
|
|
--disable-rdma
|
|
--disable-replication
|
|
--disable-sdl
|
|
--disable-seccomp
|
|
--disable-slirp
|
|
--disable-smartcard
|
|
--disable-snappy
|
|
--disable-sparse
|
|
--disable-spice
|
|
--disable-strip
|
|
--disable-tpm
|
|
--disable-usb-redir
|
|
--disable-vdi
|
|
--disable-vhost-crypto
|
|
--disable-vhost-net
|
|
--disable-vhost-scsi
|
|
--disable-vhost-kernel
|
|
--disable-vhost-user
|
|
--disable-vhost-vdpa
|
|
--disable-vhost-vsock
|
|
--disable-virglrenderer
|
|
--disable-vnc
|
|
--disable-vte
|
|
--disable-vvfat
|
|
--disable-xen
|
|
--disable-zstd
|
|
TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu
|
|
s390x-softmmu i386-linux-user
|
|
MAKE_CHECK_ARGS: check-qtest SPEED=slow
|
|
|
|
# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
|
|
# the configure script. The container doesn't contain Xen headers so
|
|
# Xen accelerator is not detected / selected. As result it build the
|
|
# i386-softmmu and x86_64-softmmu with KVM being the single accelerator
|
|
# available.
|
|
# Also use a different coroutine implementation (which is only really of
|
|
# interest to KVM users, i.e. with TCG disabled)
|
|
build-tcg-disabled:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-centos8-container
|
|
variables:
|
|
IMAGE: centos8
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext
|
|
|| { cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
- make -j"$JOBS"
|
|
- make check-unit
|
|
- make check-qapi-schema
|
|
- cd tests/qemu-iotests/
|
|
- ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
|
|
052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
|
|
170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
|
|
- ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
|
|
124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
|
|
208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
|
|
260 261 262 263 264 270 272 273 277 279
|
|
|
|
build-user:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-system
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
build-user-static:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-system --static
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
# Because the hexagon cross-compiler takes so long to build we don't rely
|
|
# on the CI system to build it and hence this job has an optional dependency
|
|
# declared. The image is manually uploaded.
|
|
build-user-hexagon:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: hexagon-cross-container
|
|
optional: true
|
|
variables:
|
|
IMAGE: debian-hexagon-cross
|
|
TARGETS: hexagon-linux-user
|
|
CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
# Only build the softmmu targets we have check-tcg tests for
|
|
build-some-softmmu:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --enable-debug
|
|
TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
# We build tricore in a very minimal tricore only container
|
|
build-tricore-softmmu:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: tricore-debian-cross-container
|
|
variables:
|
|
IMAGE: debian-tricore-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug
|
|
TARGETS: tricore-softmmu
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
clang-system:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-fedora-container
|
|
variables:
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++
|
|
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
|
TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
|
|
ppc-softmmu s390x-softmmu
|
|
MAKE_CHECK_ARGS: check-qtest check-tcg
|
|
|
|
clang-user:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
|
|
--target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
|
|
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
|
MAKE_CHECK_ARGS: check-unit check-tcg
|
|
|
|
# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
|
|
# On gitlab runners, default value sometimes end up calling 2 lds concurrently and
|
|
# triggers an Out-Of-Memory error
|
|
#
|
|
# Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together
|
|
# with QEMU and linked as a static library to avoid false positives in CFI checks.
|
|
# This can be accomplished by using -enable-slirp=git, which avoids the use of
|
|
# a system-wide version of the library
|
|
#
|
|
# Split in three sets of build/check/acceptance to limit the execution time of each
|
|
# job
|
|
build-cfi-aarch64:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
- job: amd64-fedora-container
|
|
variables:
|
|
LD_JOBS: 1
|
|
AR: llvm-ar
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
|
--enable-safe-stack --enable-slirp=git
|
|
TARGETS: aarch64-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
timeout: 70m
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-cfi-aarch64:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-cfi-aarch64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-cfi-aarch64:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-cfi-aarch64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-cfi-ppc64-s390x:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
- job: amd64-fedora-container
|
|
variables:
|
|
LD_JOBS: 1
|
|
AR: llvm-ar
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
|
--enable-safe-stack --enable-slirp=git
|
|
TARGETS: ppc64-softmmu s390x-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
timeout: 70m
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-cfi-ppc64-s390x:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-cfi-ppc64-s390x
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-cfi-ppc64-s390x:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-cfi-ppc64-s390x
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
build-cfi-x86_64:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
- job: amd64-fedora-container
|
|
variables:
|
|
LD_JOBS: 1
|
|
AR: llvm-ar
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
|
|
--enable-safe-stack --enable-slirp=git
|
|
TARGETS: x86_64-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
timeout: 70m
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-cfi-x86_64:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-cfi-x86_64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-cfi-x86_64:
|
|
extends: .acceptance_test_job_template
|
|
needs:
|
|
- job: build-cfi-x86_64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
|
|
tsan-build:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-ubuntu2004-container
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10
|
|
--enable-trace-backends=ust --enable-fdt=system --enable-slirp=system
|
|
TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
|
|
MAKE_CHECK_ARGS: bench V=1
|
|
|
|
# These targets are on the way out
|
|
build-deprecated:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools
|
|
MAKE_CHECK_ARGS: build-tcg
|
|
TARGETS: ppc64abi32-linux-user
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
# We split the check-tcg step as test failures are expected but we still
|
|
# want to catch the build breaking.
|
|
check-deprecated:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-deprecated
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
allow_failure: true
|
|
|
|
# gprof/gcov are GCC features
|
|
build-gprof-gcov:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-ubuntu2004-container
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
|
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
|
artifacts:
|
|
expire_in: 1 days
|
|
paths:
|
|
- build
|
|
|
|
check-gprof-gcov:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-gprof-gcov
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check
|
|
after_script:
|
|
- ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
|
|
|
|
build-oss-fuzz:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-fedora-container
|
|
variables:
|
|
IMAGE: fedora
|
|
script:
|
|
- mkdir build-oss-fuzz
|
|
- CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
|
|
./scripts/oss-fuzz/build.sh
|
|
- export ASAN_OPTIONS="fast_unwind_on_malloc=0"
|
|
- for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
|
|
| grep -v slirp); do
|
|
grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
|
|
echo Testing ${fuzzer} ... ;
|
|
"${fuzzer}" -runs=1 -seed=1 || exit 1 ;
|
|
done
|
|
# Unrelated to fuzzer: run some tests with -fsanitize=address
|
|
- cd build-oss-fuzz && make check-qtest-i386 check-unit
|
|
|
|
build-tci:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-user-cross-container
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
script:
|
|
- TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64"
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --enable-tcg-interpreter
|
|
--target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
- make -j"$JOBS"
|
|
- make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
|
|
- for tg in $TARGETS ; do
|
|
export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
|
|
./tests/qtest/boot-serial-test || exit 1 ;
|
|
./tests/qtest/cdrom-test || exit 1 ;
|
|
done
|
|
- QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
|
|
- QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
|
|
- make check-tcg
|
|
|
|
# Alternate coroutines implementations are only really of interest to KVM users
|
|
# However we can't test against KVM on Gitlab-CI so we can only run unit tests
|
|
build-coroutine-sigaltstack:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-ubuntu2004-container
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
|
|
--enable-trace-backends=ftrace
|
|
MAKE_CHECK_ARGS: check-unit
|
|
|
|
# Check our reduced build configurations
|
|
build-without-default-devices:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-centos8-container
|
|
variables:
|
|
IMAGE: centos8
|
|
CONFIGURE_ARGS: --without-default-devices --disable-user
|
|
|
|
build-without-default-features:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-container
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
CONFIGURE_ARGS: --without-default-features --disable-user
|
|
--target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
|
|
MAKE_CHECK_ARGS: check-unit
|
|
|
|
build-libvhost-user:
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
|
|
needs:
|
|
job: amd64-fedora-container
|
|
before_script:
|
|
- dnf install -y meson ninja-build
|
|
script:
|
|
- mkdir subprojects/libvhost-user/build
|
|
- cd subprojects/libvhost-user/build
|
|
- meson
|
|
- ninja
|
|
|
|
# No targets are built here, just tools, docs, and unit tests. This
|
|
# also feeds into the eventual documentation deployment steps later
|
|
build-tools-and-docs-debian:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-container
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
|
|
CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
# Prepare for GitLab pages deployment. Anything copied into the
|
|
# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
|
|
#
|
|
# GitLab publishes from any branch that triggers a CI pipeline
|
|
#
|
|
# For the main repo we don't want to publish from 'staging'
|
|
# since that content may not be pushed, nor do we wish to
|
|
# publish from 'stable-NNN' branches as that content is outdated.
|
|
# Thus we restrict to just the default branch
|
|
#
|
|
# For contributor forks we want to publish from any repo so
|
|
# that users can see the results of their commits, regardless
|
|
# of what topic branch they're currently using
|
|
pages:
|
|
image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
|
|
stage: test
|
|
needs:
|
|
- job: build-tools-and-docs-debian
|
|
script:
|
|
- mkdir -p public
|
|
# HTML-ised source tree
|
|
- make gtags
|
|
- htags -anT --tree-view=filetree -m qemu_init
|
|
-t "Welcome to the QEMU sourcecode"
|
|
- mv HTML public/src
|
|
# Project documentation
|
|
- make -C build install DESTDIR=$(pwd)/temp-install
|
|
- mv temp-install/usr/local/share/doc/qemu/* public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
when: on_success
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
|
when: never
|
|
- if: '$CI_PROJECT_NAMESPACE != "qemu-project"'
|
|
when: on_success
|