-include:
- - local: '/.gitlab-ci.d/stages.yml'
- - local: '/.gitlab-ci.d/edk2.yml'
- - local: '/.gitlab-ci.d/opensbi.yml'
- - local: '/.gitlab-ci.d/containers.yml'
- - local: '/.gitlab-ci.d/crossbuilds.yml'
- - local: '/.gitlab-ci.d/buildtest-template.yml'
- - local: '/.gitlab-ci.d/static_checks.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
-
-# Run check-tcg against linux-user (with plugins)
-# we skip sparc64-linux-user until it has been fixed somewhat
-# we skip cris-linux-user as it doesn't use the common run loop
-build-user-plugins:
- extends: .native_build_job_template
- needs:
- job: amd64-debian-user-cross-container
- variables:
- IMAGE: debian-all-test-cross
- CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
- MAKE_CHECK_ARGS: check-tcg
- timeout: 1h 30m
-
-build-user-centos7:
- extends: .native_build_job_template
- needs:
- job: amd64-centos7-container
- variables:
- IMAGE: centos7
- CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
- MAKE_CHECK_ARGS: check-tcg
-
-build-some-softmmu-plugins:
- extends: .native_build_job_template
- needs:
- job: amd64-debian-user-cross-container
- variables:
- IMAGE: debian-all-test-cross
- CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
- TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-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