12a917a14f
Currently, our check-system-* jobs are recompiling the whole sources again. This happens due to the fact that the jobs are checking out the whole source tree and required submodules again, and only try to use the "build" directory with the binaries and object files as an artifact from the previous stage - which simply does not work right anymore (with the current version of meson). Due to some changed time stamps, meson/ninja are always trying to rebuild the whole tree. In the long run, we could likely use "meson test --no-rebuild", but there is still some work going on in that area to improve the user experience. So until this has been done, simply avoid recompiling the sources with a trick: pass NINJA=":" to the make process in the test jobs. Also check out the submodules manually before updating the timestamps in the build folder, so that the binaries are definitely newer that all the source files. This saves ca. 10 - 15 minutes of precious CI cycles in each run. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20210126065757.403853-1-thuth@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
678 lines
19 KiB
YAML
678 lines
19 KiB
YAML
# Currently we have two build stages after our containers are built:
|
|
# - build (for traditional build and test or first stage build)
|
|
# - test (for test stages, using build artefacts from a build stage)
|
|
stages:
|
|
- containers
|
|
- containers-layer2
|
|
- build
|
|
- test
|
|
|
|
include:
|
|
- local: '/.gitlab-ci.d/edk2.yml'
|
|
- local: '/.gitlab-ci.d/opensbi.yml'
|
|
- local: '/.gitlab-ci.d/containers.yml'
|
|
- local: '/.gitlab-ci.d/crossbuilds.yml'
|
|
|
|
.native_build_job_template: &native_build_job_definition
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
before_script:
|
|
- JOBS=$(expr $(nproc) + 1)
|
|
- sed -i s,git.qemu.org/git,gitlab.com/qemu-project, .gitmodules
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- if test -n "$TARGETS";
|
|
then
|
|
../configure --enable-werror $CONFIGURE_ARGS --target-list="$TARGETS" ;
|
|
else
|
|
../configure --enable-werror $CONFIGURE_ARGS ;
|
|
fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
- make -j"$JOBS"
|
|
- if test -n "$MAKE_CHECK_ARGS";
|
|
then
|
|
make -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
fi
|
|
|
|
.native_test_job_template: &native_test_job_definition
|
|
stage: test
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
script:
|
|
- scripts/git-submodule.sh update
|
|
$(grep GIT_SUBMODULES build/config-host.mak | sed 's/GIT_SUBMODULES=//')
|
|
- cd build
|
|
- find . -type f -exec touch {} +
|
|
# Avoid recompiling by hiding ninja with NINJA=":"
|
|
- make NINJA=":" $MAKE_CHECK_ARGS
|
|
|
|
.acceptance_template: &acceptance_definition
|
|
cache:
|
|
key: "${CI_JOB_NAME}-cache"
|
|
paths:
|
|
- ${CI_PROJECT_DIR}/avocado-cache
|
|
policy: pull-push
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
when: always
|
|
expire_in: 2 days
|
|
paths:
|
|
- build/tests/results/latest/results.xml
|
|
- build/tests/results/latest/test-results
|
|
reports:
|
|
junit: build/tests/results/latest/results.xml
|
|
before_script:
|
|
- mkdir -p ~/.config/avocado
|
|
- echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
|
|
- echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
|
|
>> ~/.config/avocado/avocado.conf
|
|
- echo -e '[job.output.testlogs]\nstatuses = ["FAIL"]'
|
|
>> ~/.config/avocado/avocado.conf
|
|
- if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
|
|
du -chs ${CI_PROJECT_DIR}/avocado-cache ;
|
|
fi
|
|
- export AVOCADO_ALLOW_UNTRUSTED_CODE=1
|
|
after_script:
|
|
- cd build
|
|
- du -chs ${CI_PROJECT_DIR}/avocado-cache
|
|
|
|
build-system-alpine:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: alpine
|
|
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
|
moxie-softmmu microblazeel-softmmu mips64el-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
CONFIGURE_ARGS: --enable-docs
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- .git-submodule-status
|
|
- build
|
|
|
|
check-system-alpine:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-alpine
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: alpine
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-alpine:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-alpine
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: alpine
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
build-system-ubuntu:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
|
|
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
|
moxie-softmmu microblazeel-softmmu mips64el-softmmu
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
|
|
check-system-ubuntu:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-ubuntu
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-ubuntu:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-ubuntu
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
build-system-debian:
|
|
<<: *native_build_job_definition
|
|
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:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
# 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:
|
|
<<: *native_build_job_definition
|
|
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
|
|
|
|
acceptance-system-debian:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
build-system-fedora:
|
|
<<: *native_build_job_definition
|
|
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:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-fedora:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
build-system-centos:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos8
|
|
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
|
|
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:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-centos
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos8
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-centos:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-centos
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos8
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
build-system-opensuse:
|
|
<<: *native_build_job_definition
|
|
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:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-opensuse
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
acceptance-system-opensuse:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-system-opensuse
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
MAKE_CHECK_ARGS: check-acceptance
|
|
<<: *acceptance_definition
|
|
|
|
|
|
build-disabled:
|
|
<<: *native_build_job_definition
|
|
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-sheepdog
|
|
--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-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.
|
|
build-tcg-disabled:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos8
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-tcg --audio-drv-list="" || { 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:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-system
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
build-user-static:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-system --static
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
# Only build the softmmu targets we have check-tcg tests for
|
|
build-some-softmmu:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-tools --enable-debug-tcg
|
|
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:
|
|
<<: *native_build_job_definition
|
|
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:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos7
|
|
CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
|
|
build-some-softmmu-plugins:
|
|
<<: *native_build_job_definition
|
|
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
|
|
|
|
build-clang:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS: --cc=clang --cxx=clang++
|
|
TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
|
|
ppc-softmmu s390x-softmmu arm-linux-user
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
# These targets are on the way out
|
|
build-deprecated:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
CONFIGURE_ARGS: --disable-docs --disable-tools
|
|
MAKE_CHECK_ARGS: build-tcg
|
|
TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
|
|
unicore32-softmmu
|
|
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:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-deprecated
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-all-test-cross
|
|
MAKE_CHECK_ARGS: check-tcg
|
|
allow_failure: true
|
|
|
|
build-oss-fuzz:
|
|
<<: *native_build_job_definition
|
|
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:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: fedora
|
|
script:
|
|
- TARGETS="aarch64 alpha arm hppa m68k microblaze moxie 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 run-tcg-tests-x86_64-softmmu
|
|
- 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
|
|
|
|
# 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-ucontext:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
|
|
MAKE_CHECK_ARGS: check-unit
|
|
|
|
build-coroutine-sigaltstack:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
|
|
MAKE_CHECK_ARGS: check-unit
|
|
|
|
# Most jobs test latest gcrypt or nettle builds
|
|
#
|
|
# These jobs test old gcrypt and nettle from RHEL7
|
|
# which had some API differences.
|
|
build-crypto-old-nettle:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos7
|
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
paths:
|
|
- build
|
|
|
|
check-crypto-old-nettle:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-crypto-old-nettle
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos7
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
|
|
build-crypto-old-gcrypt:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos7
|
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
paths:
|
|
- build
|
|
|
|
check-crypto-old-gcrypt:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-crypto-old-gcrypt
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos7
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
|
|
build-crypto-only-gnutls:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos7
|
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
|
|
MAKE_CHECK_ARGS: check-build
|
|
artifacts:
|
|
paths:
|
|
- build
|
|
|
|
check-crypto-only-gnutls:
|
|
<<: *native_test_job_definition
|
|
needs:
|
|
- job: build-crypto-only-gnutls
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos7
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
# We don't need to exercise every backend with every front-end
|
|
build-trace-multi-user:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
|
|
|
|
build-trace-ftrace-system:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
|
|
|
|
build-trace-ust-system:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
|
|
|
|
# Check our reduced build configurations
|
|
build-without-default-devices:
|
|
<<: *native_build_job_definition
|
|
variables:
|
|
IMAGE: centos8
|
|
CONFIGURE_ARGS: --without-default-devices --disable-user
|
|
|
|
build-without-default-features:
|
|
<<: *native_build_job_definition
|
|
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
|
|
|
|
check-patch:
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
|
script: .gitlab-ci.d/check-patch.py
|
|
except:
|
|
variables:
|
|
- $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
|
|
variables:
|
|
GIT_DEPTH: 1000
|
|
allow_failure: true
|
|
|
|
check-dco:
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
|
script: .gitlab-ci.d/check-dco.py
|
|
except:
|
|
variables:
|
|
- $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
|
|
variables:
|
|
GIT_DEPTH: 1000
|
|
|
|
build-libvhost-user:
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
|
|
before_script:
|
|
- dnf install -y meson ninja-build
|
|
script:
|
|
- mkdir subprojects/libvhost-user/build
|
|
- cd subprojects/libvhost-user/build
|
|
- meson
|
|
- ninja
|
|
|
|
# Prepare for GitLab pages deployment. Anything copied into the
|
|
# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
|
|
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
|