1f2f5c3e6SPhilippe Mathieu-Daudéinclude: 2f2f5c3e6SPhilippe Mathieu-Daudé - local: '/.gitlab-ci.d/buildtest-template.yml' 3f2f5c3e6SPhilippe Mathieu-Daudé 4f2f5c3e6SPhilippe Mathieu-Daudébuild-system-alpine: 588b19e4eSAlex Bennée extends: 688b19e4eSAlex Bennée - .native_build_job_template 788b19e4eSAlex Bennée - .native_build_artifact_template 8f2f5c3e6SPhilippe Mathieu-Daudé needs: 9f2f5c3e6SPhilippe Mathieu-Daudé - job: amd64-alpine-container 10f2f5c3e6SPhilippe Mathieu-Daudé variables: 11f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: alpine 12d4f784c5SThomas Huth TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu 13f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 14f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog 15f2f5c3e6SPhilippe Mathieu-Daudé 16f2f5c3e6SPhilippe Mathieu-Daudécheck-system-alpine: 17f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 18f2f5c3e6SPhilippe Mathieu-Daudé needs: 19f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-alpine 20f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 21f2f5c3e6SPhilippe Mathieu-Daudé variables: 22f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: alpine 23f178c62aSDaniel P. Berrangé MAKE_CHECK_ARGS: check-unit check-qtest 24f2f5c3e6SPhilippe Mathieu-Daudé 256d62722eSThomas Huthfunctional-system-alpine: 266d62722eSThomas Huth extends: .functional_test_job_template 27f2f5c3e6SPhilippe Mathieu-Daudé needs: 28f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-alpine 29f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 30f2f5c3e6SPhilippe Mathieu-Daudé variables: 31f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: alpine 326d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 3378ebc00bSAlex Bennée AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel 34f2f5c3e6SPhilippe Mathieu-Daudé 35f2f5c3e6SPhilippe Mathieu-Daudébuild-system-ubuntu: 3688b19e4eSAlex Bennée extends: 3788b19e4eSAlex Bennée - .native_build_job_template 3888b19e4eSAlex Bennée - .native_build_artifact_template 39f2f5c3e6SPhilippe Mathieu-Daudé needs: 40171080d8SAlex Bennée job: amd64-ubuntu2204-container 41f2f5c3e6SPhilippe Mathieu-Daudé variables: 42171080d8SAlex Bennée IMAGE: ubuntu2204 43eda2321dSThomas Huth CONFIGURE_ARGS: --enable-docs 442d41bf0fSAlex Bennée TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu 45f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 46f2f5c3e6SPhilippe Mathieu-Daudé 47f2f5c3e6SPhilippe Mathieu-Daudécheck-system-ubuntu: 48f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 49f2f5c3e6SPhilippe Mathieu-Daudé needs: 50f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-ubuntu 51f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 52f2f5c3e6SPhilippe Mathieu-Daudé variables: 53171080d8SAlex Bennée IMAGE: ubuntu2204 54f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 55f2f5c3e6SPhilippe Mathieu-Daudé 566d62722eSThomas Huthfunctional-system-ubuntu: 576d62722eSThomas Huth extends: .functional_test_job_template 58f2f5c3e6SPhilippe Mathieu-Daudé needs: 59f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-ubuntu 60f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 61f2f5c3e6SPhilippe Mathieu-Daudé variables: 62171080d8SAlex Bennée IMAGE: ubuntu2204 636d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 642d41bf0fSAlex Bennée AVOCADO_TAGS: arch:alpha arch:microblazeel arch:mips64el 65f2f5c3e6SPhilippe Mathieu-Daudé 66f2f5c3e6SPhilippe Mathieu-Daudébuild-system-debian: 6788b19e4eSAlex Bennée extends: 6888b19e4eSAlex Bennée - .native_build_job_template 6988b19e4eSAlex Bennée - .native_build_artifact_template 70f2f5c3e6SPhilippe Mathieu-Daudé needs: 71f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-container 72f2f5c3e6SPhilippe Mathieu-Daudé variables: 738e721c32SAlex Bennée IMAGE: debian 742f5a375fSThomas Huth CONFIGURE_ARGS: --with-coroutine=sigaltstack 7551cdb680SThomas Huth TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu 7678ebc00bSAlex Bennée sparc-softmmu xtensa-softmmu 77f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 78f2f5c3e6SPhilippe Mathieu-Daudé 79f2f5c3e6SPhilippe Mathieu-Daudécheck-system-debian: 80f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 81f2f5c3e6SPhilippe Mathieu-Daudé needs: 82f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-debian 83f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 84f2f5c3e6SPhilippe Mathieu-Daudé variables: 858e721c32SAlex Bennée IMAGE: debian 86f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 87f2f5c3e6SPhilippe Mathieu-Daudé 886d62722eSThomas Huthfunctional-system-debian: 896d62722eSThomas Huth extends: .functional_test_job_template 90f2f5c3e6SPhilippe Mathieu-Daudé needs: 91f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-debian 92f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 93f2f5c3e6SPhilippe Mathieu-Daudé variables: 948e721c32SAlex Bennée IMAGE: debian 956d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 9678ebc00bSAlex Bennée AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa 97f2f5c3e6SPhilippe Mathieu-Daudé 98f462be4cSThomas Huthcrash-test-debian: 99f462be4cSThomas Huth extends: .native_test_job_template 100f462be4cSThomas Huth needs: 101f462be4cSThomas Huth - job: build-system-debian 102f462be4cSThomas Huth artifacts: true 103f462be4cSThomas Huth variables: 1048e721c32SAlex Bennée IMAGE: debian 105f462be4cSThomas Huth script: 106f462be4cSThomas Huth - cd build 1074d3bd91bSThomas Huth - make NINJA=":" check-venv 108c03f57fdSPaolo Bonzini - pyvenv/bin/python3 scripts/device-crash-test -q --tcg-only ./qemu-system-i386 109f462be4cSThomas Huth 110f2f5c3e6SPhilippe Mathieu-Daudébuild-system-fedora: 11188b19e4eSAlex Bennée extends: 11288b19e4eSAlex Bennée - .native_build_job_template 11388b19e4eSAlex Bennée - .native_build_artifact_template 114f2f5c3e6SPhilippe Mathieu-Daudé needs: 115f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-fedora-container 116f2f5c3e6SPhilippe Mathieu-Daudé variables: 117f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 11815195de6SDaniel P. Berrangé CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-crypto-afalg --enable-rust 11978ebc00bSAlex Bennée TARGETS: microblaze-softmmu mips-softmmu 120f2f5c3e6SPhilippe Mathieu-Daudé xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu 121f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 122f2f5c3e6SPhilippe Mathieu-Daudé 123872e9581SPaolo Bonzinibuild-system-fedora-rust-nightly: 124872e9581SPaolo Bonzini extends: 125872e9581SPaolo Bonzini - .native_build_job_template 126872e9581SPaolo Bonzini - .native_build_artifact_template 127872e9581SPaolo Bonzini needs: 128872e9581SPaolo Bonzini job: amd64-fedora-rust-nightly-container 129872e9581SPaolo Bonzini variables: 130872e9581SPaolo Bonzini IMAGE: fedora-rust-nightly 131*c6ea723dSPaolo Bonzini CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints 132872e9581SPaolo Bonzini TARGETS: aarch64-softmmu 133872e9581SPaolo Bonzini MAKE_CHECK_ARGS: check-build 134872e9581SPaolo Bonzini allow_failure: true 135872e9581SPaolo Bonzini 136f2f5c3e6SPhilippe Mathieu-Daudécheck-system-fedora: 137f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 138f2f5c3e6SPhilippe Mathieu-Daudé needs: 139f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-fedora 140f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 141f2f5c3e6SPhilippe Mathieu-Daudé variables: 142f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 143f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 144f2f5c3e6SPhilippe Mathieu-Daudé 1456d62722eSThomas Huthfunctional-system-fedora: 1466d62722eSThomas Huth extends: .functional_test_job_template 147f2f5c3e6SPhilippe Mathieu-Daudé needs: 148f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-fedora 149f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 150f2f5c3e6SPhilippe Mathieu-Daudé variables: 151f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 1526d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 15378ebc00bSAlex Bennée AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k 15478ebc00bSAlex Bennée arch:riscv32 arch:ppc arch:sparc64 155f2f5c3e6SPhilippe Mathieu-Daudé 156f462be4cSThomas Huthcrash-test-fedora: 157f462be4cSThomas Huth extends: .native_test_job_template 158f462be4cSThomas Huth needs: 159f462be4cSThomas Huth - job: build-system-fedora 160f462be4cSThomas Huth artifacts: true 161f462be4cSThomas Huth variables: 162f462be4cSThomas Huth IMAGE: fedora 163f462be4cSThomas Huth script: 164f462be4cSThomas Huth - cd build 1654d3bd91bSThomas Huth - make NINJA=":" check-venv 166c03f57fdSPaolo Bonzini - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-ppc 167c03f57fdSPaolo Bonzini - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-riscv32 168f462be4cSThomas Huth 169f2f5c3e6SPhilippe Mathieu-Daudébuild-system-centos: 17088b19e4eSAlex Bennée extends: 17188b19e4eSAlex Bennée - .native_build_job_template 17288b19e4eSAlex Bennée - .native_build_artifact_template 173f2f5c3e6SPhilippe Mathieu-Daudé needs: 174641b1efeSThomas Huth job: amd64-centos9-container 175f2f5c3e6SPhilippe Mathieu-Daudé variables: 176641b1efeSThomas Huth IMAGE: centos9 177eda2321dSThomas Huth CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server 1784cc75ce6SThomas Huth --enable-modules --enable-trace-backends=dtrace --enable-docs 179f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu 1806c301485SPhilippe Mathieu-Daudé x86_64-softmmu rx-softmmu sh4-softmmu 181f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 182f2f5c3e6SPhilippe Mathieu-Daudé 18394766edbSFabiano Rosas# Previous QEMU release. Used for cross-version migration tests. 18494766edbSFabiano Rosasbuild-previous-qemu: 18594766edbSFabiano Rosas extends: .native_build_job_template 18694766edbSFabiano Rosas artifacts: 18794766edbSFabiano Rosas when: on_success 18894766edbSFabiano Rosas expire_in: 2 days 18994766edbSFabiano Rosas paths: 19094766edbSFabiano Rosas - build-previous 19194766edbSFabiano Rosas exclude: 19294766edbSFabiano Rosas - build-previous/**/*.p 19394766edbSFabiano Rosas - build-previous/**/*.a.p 19494766edbSFabiano Rosas - build-previous/**/*.c.o 19594766edbSFabiano Rosas - build-previous/**/*.c.o.d 19694766edbSFabiano Rosas needs: 19794766edbSFabiano Rosas job: amd64-opensuse-leap-container 19894766edbSFabiano Rosas variables: 19994766edbSFabiano Rosas IMAGE: opensuse-leap 20094766edbSFabiano Rosas TARGETS: x86_64-softmmu aarch64-softmmu 2019837697bSAlex Bennée # Override the default flags as we need more to grab the old version 2029837697bSAlex Bennée GIT_FETCH_EXTRA_FLAGS: --prune --quiet 20394766edbSFabiano Rosas before_script: 204dc05b262SPeter Maydell - source scripts/ci/gitlab-ci-section 20594766edbSFabiano Rosas - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)" 20670704779SPeter Xu - git remote add upstream https://gitlab.com/qemu-project/qemu 2075f9beb50SPaolo Bonzini - git fetch upstream refs/tags/$QEMU_PREV_VERSION:refs/tags/$QEMU_PREV_VERSION 20894766edbSFabiano Rosas - git checkout $QEMU_PREV_VERSION 20994766edbSFabiano Rosas after_script: 21094766edbSFabiano Rosas - mv build build-previous 21194766edbSFabiano Rosas 21294766edbSFabiano Rosas.migration-compat-common: 21394766edbSFabiano Rosas extends: .common_test_job_template 21494766edbSFabiano Rosas needs: 21594766edbSFabiano Rosas - job: build-previous-qemu 21694766edbSFabiano Rosas - job: build-system-opensuse 21794766edbSFabiano Rosas # The old QEMU could have bugs unrelated to migration that are 21894766edbSFabiano Rosas # already fixed in the current development branch, so this test 21994766edbSFabiano Rosas # might fail. 22094766edbSFabiano Rosas allow_failure: true 22194766edbSFabiano Rosas variables: 22294766edbSFabiano Rosas IMAGE: opensuse-leap 22394766edbSFabiano Rosas MAKE_CHECK_ARGS: check-build 22494766edbSFabiano Rosas script: 22594766edbSFabiano Rosas # Use the migration-tests from the older QEMU tree. This avoids 22694766edbSFabiano Rosas # testing an old QEMU against new features/tests that it is not 22794766edbSFabiano Rosas # compatible with. 22894766edbSFabiano Rosas - cd build-previous 22958073366SFabiano Rosas # Don't allow python-based tests to run. The 23058073366SFabiano Rosas # vmstate-checker-script test has a race that causes it to fail 23158073366SFabiano Rosas # sometimes. It cannot be fixed it because this job runs the test 23258073366SFabiano Rosas # from the old QEMU version. The test will be removed on master, 23358073366SFabiano Rosas # but this job will only see the change in the next release. 23458073366SFabiano Rosas # 23558073366SFabiano Rosas # TODO: remove this line after 9.2 release 23658073366SFabiano Rosas - unset PYTHON 23794766edbSFabiano Rosas # old to new 23894766edbSFabiano Rosas - QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET} 23994766edbSFabiano Rosas QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test 24094766edbSFabiano Rosas # new to old 24194766edbSFabiano Rosas - QTEST_QEMU_BINARY_DST=./qemu-system-${TARGET} 24294766edbSFabiano Rosas QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test 24394766edbSFabiano Rosas 244940bf8ffSPeter Xu# This job needs to be disabled until we can have an aarch64 CPU model that 245940bf8ffSPeter Xu# will both (1) support both KVM and TCG, and (2) provide a stable ABI. 246940bf8ffSPeter Xu# Currently only "-cpu max" can provide (1), however it doesn't guarantee 247940bf8ffSPeter Xu# (2). Mark this test skipped until later. 24894766edbSFabiano Rosasmigration-compat-aarch64: 24994766edbSFabiano Rosas extends: .migration-compat-common 25094766edbSFabiano Rosas variables: 25194766edbSFabiano Rosas TARGET: aarch64 252079687e4SFabiano Rosas QEMU_JOB_SKIPPED: 1 25394766edbSFabiano Rosas 25494766edbSFabiano Rosasmigration-compat-x86_64: 25594766edbSFabiano Rosas extends: .migration-compat-common 25694766edbSFabiano Rosas variables: 25794766edbSFabiano Rosas TARGET: x86_64 25894766edbSFabiano Rosas 259f2f5c3e6SPhilippe Mathieu-Daudécheck-system-centos: 260f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 261f2f5c3e6SPhilippe Mathieu-Daudé needs: 262f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-centos 263f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 264f2f5c3e6SPhilippe Mathieu-Daudé variables: 265641b1efeSThomas Huth IMAGE: centos9 266f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 267f2f5c3e6SPhilippe Mathieu-Daudé 2686d62722eSThomas Huthfunctional-system-centos: 2696d62722eSThomas Huth extends: .functional_test_job_template 270f2f5c3e6SPhilippe Mathieu-Daudé needs: 271f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-centos 272f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 273f2f5c3e6SPhilippe Mathieu-Daudé variables: 274641b1efeSThomas Huth IMAGE: centos9 2756d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 276cdd30f36SNicholas Piggin AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx 2776c301485SPhilippe Mathieu-Daudé arch:sh4 278f2f5c3e6SPhilippe Mathieu-Daudé 279f2f5c3e6SPhilippe Mathieu-Daudébuild-system-opensuse: 28088b19e4eSAlex Bennée extends: 28188b19e4eSAlex Bennée - .native_build_job_template 28288b19e4eSAlex Bennée - .native_build_artifact_template 283f2f5c3e6SPhilippe Mathieu-Daudé needs: 284f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-opensuse-leap-container 285f2f5c3e6SPhilippe Mathieu-Daudé variables: 286f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: opensuse-leap 287f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu 288f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 289f2f5c3e6SPhilippe Mathieu-Daudé 290f2f5c3e6SPhilippe Mathieu-Daudécheck-system-opensuse: 291f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 292f2f5c3e6SPhilippe Mathieu-Daudé needs: 293f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-opensuse 294f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 295f2f5c3e6SPhilippe Mathieu-Daudé variables: 296f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: opensuse-leap 297f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 298f2f5c3e6SPhilippe Mathieu-Daudé 2996d62722eSThomas Huthfunctional-system-opensuse: 3006d62722eSThomas Huth extends: .functional_test_job_template 301f2f5c3e6SPhilippe Mathieu-Daudé needs: 302f2f5c3e6SPhilippe Mathieu-Daudé - job: build-system-opensuse 303f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 304f2f5c3e6SPhilippe Mathieu-Daudé variables: 305f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: opensuse-leap 3066d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 30778ebc00bSAlex Bennée AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64 308f2f5c3e6SPhilippe Mathieu-Daudé 3095d25fcb7SAlex Bennée# 3105d25fcb7SAlex Bennée# Flaky tests. We don't run these by default and they are allow fail 3115d25fcb7SAlex Bennée# but often the CI system is the only way to trigger the failures. 3125d25fcb7SAlex Bennée# 3135d25fcb7SAlex Bennée 3145d25fcb7SAlex Bennéebuild-system-flaky: 3155d25fcb7SAlex Bennée extends: 3165d25fcb7SAlex Bennée - .native_build_job_template 3175d25fcb7SAlex Bennée - .native_build_artifact_template 3185d25fcb7SAlex Bennée needs: 3195d25fcb7SAlex Bennée job: amd64-debian-container 3205d25fcb7SAlex Bennée variables: 3215d25fcb7SAlex Bennée IMAGE: debian 3225d25fcb7SAlex Bennée QEMU_JOB_OPTIONAL: 1 3235d25fcb7SAlex Bennée TARGETS: aarch64-softmmu arm-softmmu mips64el-softmmu 3245d25fcb7SAlex Bennée ppc64-softmmu rx-softmmu s390x-softmmu sh4-softmmu x86_64-softmmu 3255d25fcb7SAlex Bennée MAKE_CHECK_ARGS: check-build 3265d25fcb7SAlex Bennée 3276d62722eSThomas Huthfunctional-system-flaky: 3286d62722eSThomas Huth extends: .functional_test_job_template 3295d25fcb7SAlex Bennée needs: 3305d25fcb7SAlex Bennée - job: build-system-flaky 3315d25fcb7SAlex Bennée artifacts: true 3325d25fcb7SAlex Bennée allow_failure: true 3335d25fcb7SAlex Bennée variables: 3345d25fcb7SAlex Bennée IMAGE: debian 3356d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 3365d25fcb7SAlex Bennée QEMU_JOB_OPTIONAL: 1 3375d25fcb7SAlex Bennée QEMU_TEST_FLAKY_TESTS: 1 3385d25fcb7SAlex Bennée AVOCADO_TAGS: flaky 339f2f5c3e6SPhilippe Mathieu-Daudé 340f2f5c3e6SPhilippe Mathieu-Daudé# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by 341f2f5c3e6SPhilippe Mathieu-Daudé# the configure script. The container doesn't contain Xen headers so 342f2f5c3e6SPhilippe Mathieu-Daudé# Xen accelerator is not detected / selected. As result it build the 343f2f5c3e6SPhilippe Mathieu-Daudé# i386-softmmu and x86_64-softmmu with KVM being the single accelerator 344f2f5c3e6SPhilippe Mathieu-Daudé# available. 345f2f5c3e6SPhilippe Mathieu-Daudé# Also use a different coroutine implementation (which is only really of 346f2f5c3e6SPhilippe Mathieu-Daudé# interest to KVM users, i.e. with TCG disabled) 347f2f5c3e6SPhilippe Mathieu-Daudébuild-tcg-disabled: 348f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 349f2f5c3e6SPhilippe Mathieu-Daudé needs: 350641b1efeSThomas Huth job: amd64-centos9-container 351f2f5c3e6SPhilippe Mathieu-Daudé variables: 352641b1efeSThomas Huth IMAGE: centos9 353f2f5c3e6SPhilippe Mathieu-Daudé script: 354f2f5c3e6SPhilippe Mathieu-Daudé - mkdir build 355f2f5c3e6SPhilippe Mathieu-Daudé - cd build 356f2f5c3e6SPhilippe Mathieu-Daudé - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext 3573b4f9119SThomas Huth --disable-docs --disable-sdl --disable-gtk --disable-vnc 358f2f5c3e6SPhilippe Mathieu-Daudé || { cat config.log meson-logs/meson-log.txt && exit 1; } 359f2f5c3e6SPhilippe Mathieu-Daudé - make -j"$JOBS" 360f2f5c3e6SPhilippe Mathieu-Daudé - make check-unit 361f2f5c3e6SPhilippe Mathieu-Daudé - make check-qapi-schema 362f2f5c3e6SPhilippe Mathieu-Daudé - cd tests/qemu-iotests/ 363f2f5c3e6SPhilippe Mathieu-Daudé - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 364f2f5c3e6SPhilippe Mathieu-Daudé 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 36518d154f5SFabiano Rosas 170 171 184 192 194 208 221 226 227 236 253 277 image-fleecing 366f2f5c3e6SPhilippe Mathieu-Daudé - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122 367db1e1192SThomas Huth 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202 368c88f0789SVladimir Sementsov-Ogievskiy 208 209 216 218 227 234 246 247 248 250 254 255 257 258 369c88f0789SVladimir Sementsov-Ogievskiy 260 261 262 263 264 270 272 273 277 279 image-fleecing 3701231bc7dSThomas Huth - cd ../.. 3711231bc7dSThomas Huth - make distclean 372f2f5c3e6SPhilippe Mathieu-Daudé 373f2f5c3e6SPhilippe Mathieu-Daudébuild-user: 374f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 375f2f5c3e6SPhilippe Mathieu-Daudé needs: 376f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-user-cross-container 377f2f5c3e6SPhilippe Mathieu-Daudé variables: 378f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-all-test-cross 379f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --disable-tools --disable-system 3804e76d98aSAlex Bennée --target-list-exclude=alpha-linux-user,sh4-linux-user 381f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-tcg 382f2f5c3e6SPhilippe Mathieu-Daudé 383f2f5c3e6SPhilippe Mathieu-Daudébuild-user-static: 384f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 385f2f5c3e6SPhilippe Mathieu-Daudé needs: 386f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-user-cross-container 387f2f5c3e6SPhilippe Mathieu-Daudé variables: 388f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-all-test-cross 389f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --disable-tools --disable-system --static 3904e76d98aSAlex Bennée --target-list-exclude=alpha-linux-user,sh4-linux-user 391aa39c4c0SAlex Bennée MAKE_CHECK_ARGS: check-tcg 392aa39c4c0SAlex Bennée 393aa39c4c0SAlex Bennée# targets stuck on older compilers 394aa39c4c0SAlex Bennéebuild-legacy: 395aa39c4c0SAlex Bennée extends: .native_build_job_template 396aa39c4c0SAlex Bennée needs: 397aa39c4c0SAlex Bennée job: amd64-debian-legacy-cross-container 398aa39c4c0SAlex Bennée variables: 399aa39c4c0SAlex Bennée IMAGE: debian-legacy-test-cross 4004e76d98aSAlex Bennée TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user 401aa39c4c0SAlex Bennée CONFIGURE_ARGS: --disable-tools 402f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-tcg 403f2f5c3e6SPhilippe Mathieu-Daudé 404f2f5c3e6SPhilippe Mathieu-Daudébuild-user-hexagon: 405f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 406f2f5c3e6SPhilippe Mathieu-Daudé needs: 407f2f5c3e6SPhilippe Mathieu-Daudé job: hexagon-cross-container 408f2f5c3e6SPhilippe Mathieu-Daudé variables: 409f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-hexagon-cross 410f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: hexagon-linux-user 411f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg 412f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-tcg 413f2f5c3e6SPhilippe Mathieu-Daudé 4146f6c3999SAlex Bennée# Build the softmmu targets we have check-tcg tests and compilers in 4156f6c3999SAlex Bennée# our omnibus all-test-cross container. Those targets that haven't got 4166f6c3999SAlex Bennée# Debian cross compiler support need to use special containers. 417f2f5c3e6SPhilippe Mathieu-Daudébuild-some-softmmu: 418f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 419f2f5c3e6SPhilippe Mathieu-Daudé needs: 420f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-user-cross-container 421f2f5c3e6SPhilippe Mathieu-Daudé variables: 422f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-all-test-cross 423f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --disable-tools --enable-debug 4246f6c3999SAlex Bennée TARGETS: arm-softmmu aarch64-softmmu i386-softmmu riscv64-softmmu 4256f6c3999SAlex Bennée s390x-softmmu x86_64-softmmu 4266f6c3999SAlex Bennée MAKE_CHECK_ARGS: check-tcg 427cb8715bfSAlex Bennée 428cb8715bfSAlex Bennéebuild-loongarch64: 429cb8715bfSAlex Bennée extends: .native_build_job_template 430cb8715bfSAlex Bennée needs: 431cb8715bfSAlex Bennée job: loongarch-debian-cross-container 432cb8715bfSAlex Bennée variables: 433cb8715bfSAlex Bennée IMAGE: debian-loongarch-cross 434cb8715bfSAlex Bennée CONFIGURE_ARGS: --disable-tools --enable-debug 435cb8715bfSAlex Bennée TARGETS: loongarch64-linux-user loongarch64-softmmu 436f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-tcg 437f2f5c3e6SPhilippe Mathieu-Daudé 43839ce9237SAlex Bennée# We build tricore in a very minimal tricore only container 43939ce9237SAlex Bennéebuild-tricore-softmmu: 44039ce9237SAlex Bennée extends: .native_build_job_template 44139ce9237SAlex Bennée needs: 44239ce9237SAlex Bennée job: tricore-debian-cross-container 44339ce9237SAlex Bennée variables: 44439ce9237SAlex Bennée IMAGE: debian-tricore-cross 44539ce9237SAlex Bennée CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug 44639ce9237SAlex Bennée TARGETS: tricore-softmmu 44739ce9237SAlex Bennée MAKE_CHECK_ARGS: check-tcg 44839ce9237SAlex Bennée 449f2f5c3e6SPhilippe Mathieu-Daudéclang-system: 450f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 451f2f5c3e6SPhilippe Mathieu-Daudé needs: 452f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-fedora-container 453f2f5c3e6SPhilippe Mathieu-Daudé variables: 454f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 455db770a20SRichard Henderson CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan 456db770a20SRichard Henderson --extra-cflags=-fno-sanitize-recover=undefined 4577c4f7150SThomas Huth TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu 458f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-qtest check-tcg 459f2f5c3e6SPhilippe Mathieu-Daudé 460f2f5c3e6SPhilippe Mathieu-Daudéclang-user: 461f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 462f2f5c3e6SPhilippe Mathieu-Daudé needs: 463f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-user-cross-container 464765de32dSStefan Hajnoczi timeout: 70m 465f2f5c3e6SPhilippe Mathieu-Daudé variables: 466f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-all-test-cross 467db770a20SRichard Henderson CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system --enable-ubsan 468aa39c4c0SAlex Bennée --target-list-exclude=alpha-linux-user,microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user 469db770a20SRichard Henderson --extra-cflags=-fno-sanitize-recover=undefined 470f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-unit check-tcg 471f2f5c3e6SPhilippe Mathieu-Daudé 472f2f5c3e6SPhilippe Mathieu-Daudé# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. 473f2f5c3e6SPhilippe Mathieu-Daudé# On gitlab runners, default value sometimes end up calling 2 lds concurrently and 474f2f5c3e6SPhilippe Mathieu-Daudé# triggers an Out-Of-Memory error 475f2f5c3e6SPhilippe Mathieu-Daudé# 4765890258aSThomas Huth# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with 4775890258aSThomas Huth# CFI builds, and thus have to disable it here. 478f2f5c3e6SPhilippe Mathieu-Daudé# 479bbbd9b6eSWillian Rampazzo# Split in three sets of build/check/avocado to limit the execution time of each 480f2f5c3e6SPhilippe Mathieu-Daudé# job 481f2f5c3e6SPhilippe Mathieu-Daudébuild-cfi-aarch64: 48288b19e4eSAlex Bennée extends: 48388b19e4eSAlex Bennée - .native_build_job_template 48488b19e4eSAlex Bennée - .native_build_artifact_template 485f2f5c3e6SPhilippe Mathieu-Daudé needs: 486f2f5c3e6SPhilippe Mathieu-Daudé - job: amd64-fedora-container 487f2f5c3e6SPhilippe Mathieu-Daudé variables: 488f2f5c3e6SPhilippe Mathieu-Daudé LD_JOBS: 1 489f2f5c3e6SPhilippe Mathieu-Daudé AR: llvm-ar 490f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 491f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 4925890258aSThomas Huth --enable-safe-stack --disable-slirp 493f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: aarch64-softmmu 494f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 495e37264ebSThomas Huth # FIXME: This job is often failing, likely due to out-of-memory problems in 496e37264ebSThomas Huth # the constrained containers of the shared runners. Thus this is marked as 497e312d1fdSDaniel P. Berrangé # skipped until the situation has been solved. 498e312d1fdSDaniel P. Berrangé QEMU_JOB_SKIPPED: 1 49972ec89bfSThomas Huth timeout: 90m 500f2f5c3e6SPhilippe Mathieu-Daudé 501f2f5c3e6SPhilippe Mathieu-Daudécheck-cfi-aarch64: 502f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 503f2f5c3e6SPhilippe Mathieu-Daudé needs: 504f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-aarch64 505f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 506f2f5c3e6SPhilippe Mathieu-Daudé variables: 507f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 508f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 509f2f5c3e6SPhilippe Mathieu-Daudé 5106d62722eSThomas Huthfunctional-cfi-aarch64: 5116d62722eSThomas Huth extends: .functional_test_job_template 512f2f5c3e6SPhilippe Mathieu-Daudé needs: 513f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-aarch64 514f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 515f2f5c3e6SPhilippe Mathieu-Daudé variables: 516f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 5176d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 518f2f5c3e6SPhilippe Mathieu-Daudé 519f2f5c3e6SPhilippe Mathieu-Daudébuild-cfi-ppc64-s390x: 52088b19e4eSAlex Bennée extends: 52188b19e4eSAlex Bennée - .native_build_job_template 52288b19e4eSAlex Bennée - .native_build_artifact_template 523f2f5c3e6SPhilippe Mathieu-Daudé needs: 524f2f5c3e6SPhilippe Mathieu-Daudé - job: amd64-fedora-container 525f2f5c3e6SPhilippe Mathieu-Daudé variables: 526f2f5c3e6SPhilippe Mathieu-Daudé LD_JOBS: 1 527f2f5c3e6SPhilippe Mathieu-Daudé AR: llvm-ar 528f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 529f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 5305890258aSThomas Huth --enable-safe-stack --disable-slirp 531f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: ppc64-softmmu s390x-softmmu 532f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 533e37264ebSThomas Huth # FIXME: This job is often failing, likely due to out-of-memory problems in 534e37264ebSThomas Huth # the constrained containers of the shared runners. Thus this is marked as 535e312d1fdSDaniel P. Berrangé # skipped until the situation has been solved. 536e312d1fdSDaniel P. Berrangé QEMU_JOB_SKIPPED: 1 53772ec89bfSThomas Huth timeout: 80m 538f2f5c3e6SPhilippe Mathieu-Daudé 539f2f5c3e6SPhilippe Mathieu-Daudécheck-cfi-ppc64-s390x: 540f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 541f2f5c3e6SPhilippe Mathieu-Daudé needs: 542f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-ppc64-s390x 543f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 544f2f5c3e6SPhilippe Mathieu-Daudé variables: 545f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 546f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 547f2f5c3e6SPhilippe Mathieu-Daudé 5486d62722eSThomas Huthfunctional-cfi-ppc64-s390x: 5496d62722eSThomas Huth extends: .functional_test_job_template 550f2f5c3e6SPhilippe Mathieu-Daudé needs: 551f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-ppc64-s390x 552f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 553f2f5c3e6SPhilippe Mathieu-Daudé variables: 554f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 5556d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 556f2f5c3e6SPhilippe Mathieu-Daudé 557f2f5c3e6SPhilippe Mathieu-Daudébuild-cfi-x86_64: 55888b19e4eSAlex Bennée extends: 55988b19e4eSAlex Bennée - .native_build_job_template 56088b19e4eSAlex Bennée - .native_build_artifact_template 561f2f5c3e6SPhilippe Mathieu-Daudé needs: 562f2f5c3e6SPhilippe Mathieu-Daudé - job: amd64-fedora-container 563f2f5c3e6SPhilippe Mathieu-Daudé variables: 564f2f5c3e6SPhilippe Mathieu-Daudé LD_JOBS: 1 565f2f5c3e6SPhilippe Mathieu-Daudé AR: llvm-ar 566f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 567f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 5685890258aSThomas Huth --enable-safe-stack --disable-slirp 569f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: x86_64-softmmu 570f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-build 571f2f5c3e6SPhilippe Mathieu-Daudé timeout: 70m 572f2f5c3e6SPhilippe Mathieu-Daudé 573f2f5c3e6SPhilippe Mathieu-Daudécheck-cfi-x86_64: 574f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_test_job_template 575f2f5c3e6SPhilippe Mathieu-Daudé needs: 576f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-x86_64 577f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 578f2f5c3e6SPhilippe Mathieu-Daudé variables: 579f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 580f2f5c3e6SPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check 581f2f5c3e6SPhilippe Mathieu-Daudé 5826d62722eSThomas Huthfunctional-cfi-x86_64: 5836d62722eSThomas Huth extends: .functional_test_job_template 584f2f5c3e6SPhilippe Mathieu-Daudé needs: 585f2f5c3e6SPhilippe Mathieu-Daudé - job: build-cfi-x86_64 586f2f5c3e6SPhilippe Mathieu-Daudé artifacts: true 587f2f5c3e6SPhilippe Mathieu-Daudé variables: 588f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 5896d62722eSThomas Huth MAKE_CHECK_ARGS: check-avocado check-functional 590f2f5c3e6SPhilippe Mathieu-Daudé 591f2f5c3e6SPhilippe Mathieu-Daudétsan-build: 592f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 593f2f5c3e6SPhilippe Mathieu-Daudé needs: 594171080d8SAlex Bennée job: amd64-ubuntu2204-container 595f2f5c3e6SPhilippe Mathieu-Daudé variables: 596171080d8SAlex Bennée IMAGE: ubuntu2204 597171080d8SAlex Bennée CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++ 598eda2321dSThomas Huth --enable-trace-backends=ust --disable-slirp 599f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user 600b563959bSDaniel P. Berrangé # Remove when we switch to a distro with clang >= 18 601b563959bSDaniel P. Berrangé # https://github.com/google/sanitizers/issues/1716 602b563959bSDaniel P. Berrangé MAKE: setarch -R make 603f2f5c3e6SPhilippe Mathieu-Daudé 604bb9ecae7SAlex Bennée# gcov is a GCC features 605bb9ecae7SAlex Bennéegcov: 606f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 607f2f5c3e6SPhilippe Mathieu-Daudé needs: 608171080d8SAlex Bennée job: amd64-ubuntu2204-container 609bb9ecae7SAlex Bennée timeout: 80m 610f2f5c3e6SPhilippe Mathieu-Daudé variables: 611171080d8SAlex Bennée IMAGE: ubuntu2204 612bb9ecae7SAlex Bennée CONFIGURE_ARGS: --enable-gcov 613f2f5c3e6SPhilippe Mathieu-Daudé TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu 614dc389ce1SAlex Bennée MAKE_CHECK_ARGS: check-unit check-softfloat 615f2f5c3e6SPhilippe Mathieu-Daudé after_script: 6165544d33dSAlex Bennée - cd build 6175544d33dSAlex Bennée - gcovr --xml-pretty --exclude-unreachable-branches --print-summary 6185544d33dSAlex Bennée -o coverage.xml --root ${CI_PROJECT_DIR} . *.p 6195544d33dSAlex Bennée coverage: /^\s*lines:\s*\d+.\d+\%/ 6205544d33dSAlex Bennée artifacts: 6215544d33dSAlex Bennée name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA} 622dcb242c8SDaniel P. Berrangé when: always 6235544d33dSAlex Bennée expire_in: 2 days 624dcb242c8SDaniel P. Berrangé paths: 625dcb242c8SDaniel P. Berrangé - build/meson-logs/testlog.txt 6265544d33dSAlex Bennée reports: 627dcb242c8SDaniel P. Berrangé junit: build/meson-logs/testlog.junit.xml 6285544d33dSAlex Bennée coverage_report: 6295544d33dSAlex Bennée coverage_format: cobertura 6305544d33dSAlex Bennée path: build/coverage.xml 631f2f5c3e6SPhilippe Mathieu-Daudé 632f2f5c3e6SPhilippe Mathieu-Daudébuild-oss-fuzz: 633f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 634f2f5c3e6SPhilippe Mathieu-Daudé needs: 635f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-fedora-container 636f2f5c3e6SPhilippe Mathieu-Daudé variables: 637f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: fedora 638f2f5c3e6SPhilippe Mathieu-Daudé script: 639f2f5c3e6SPhilippe Mathieu-Daudé - mkdir build-oss-fuzz 6403ab8bf83SAlex Bennée - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt 641f2f5c3e6SPhilippe Mathieu-Daudé - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" 642f2f5c3e6SPhilippe Mathieu-Daudé ./scripts/oss-fuzz/build.sh 643f2f5c3e6SPhilippe Mathieu-Daudé - export ASAN_OPTIONS="fast_unwind_on_malloc=0" 6447e9503f5SMichael Tokarev - failures=0 645f2f5c3e6SPhilippe Mathieu-Daudé - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f 646f2f5c3e6SPhilippe Mathieu-Daudé | grep -v slirp); do 647f2f5c3e6SPhilippe Mathieu-Daudé grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; 648f2f5c3e6SPhilippe Mathieu-Daudé echo Testing ${fuzzer} ... ; 6497e9503f5SMichael Tokarev "${fuzzer}" -runs=1 -seed=1 || { echo "FAILED:"" ${fuzzer} exit code is $?"; failures=$(($failures+1)); }; 650f2f5c3e6SPhilippe Mathieu-Daudé done 6517e9503f5SMichael Tokarev - echo "Number of failures:"" $failures" 6527e9503f5SMichael Tokarev - test $failures = 0 653f2f5c3e6SPhilippe Mathieu-Daudé 654f2f5c3e6SPhilippe Mathieu-Daudébuild-tci: 655f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 656f2f5c3e6SPhilippe Mathieu-Daudé needs: 657f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-user-cross-container 658f2f5c3e6SPhilippe Mathieu-Daudé variables: 659f2f5c3e6SPhilippe Mathieu-Daudé IMAGE: debian-all-test-cross 660f2f5c3e6SPhilippe Mathieu-Daudé script: 661aa39c4c0SAlex Bennée - TARGETS="aarch64 arm hppa m68k microblaze ppc64 s390x x86_64" 662f2f5c3e6SPhilippe Mathieu-Daudé - mkdir build 663f2f5c3e6SPhilippe Mathieu-Daudé - cd build 664a4ad4db4SAlex Bennée - ../configure --enable-tcg-interpreter --disable-kvm --disable-docs --disable-gtk --disable-vnc 6653b4f9119SThomas Huth --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" 6663b4f9119SThomas Huth || { cat config.log meson-logs/meson-log.txt && exit 1; } 667f2f5c3e6SPhilippe Mathieu-Daudé - make -j"$JOBS" 668f2f5c3e6SPhilippe Mathieu-Daudé - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test 669f2f5c3e6SPhilippe Mathieu-Daudé - for tg in $TARGETS ; do 670f2f5c3e6SPhilippe Mathieu-Daudé export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; 671f2f5c3e6SPhilippe Mathieu-Daudé ./tests/qtest/boot-serial-test || exit 1 ; 672f2f5c3e6SPhilippe Mathieu-Daudé ./tests/qtest/cdrom-test || exit 1 ; 673f2f5c3e6SPhilippe Mathieu-Daudé done 674f2f5c3e6SPhilippe Mathieu-Daudé - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test 675f2f5c3e6SPhilippe Mathieu-Daudé - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow 676f2f5c3e6SPhilippe Mathieu-Daudé - make check-tcg 677f2f5c3e6SPhilippe Mathieu-Daudé 678f2f5c3e6SPhilippe Mathieu-Daudé# Check our reduced build configurations 679e030d08cSThomas Huthbuild-without-defaults: 680f2f5c3e6SPhilippe Mathieu-Daudé extends: .native_build_job_template 681f2f5c3e6SPhilippe Mathieu-Daudé needs: 682641b1efeSThomas Huth job: amd64-centos9-container 683f2f5c3e6SPhilippe Mathieu-Daudé variables: 684641b1efeSThomas Huth IMAGE: centos9 6858d316275SThomas Huth CONFIGURE_ARGS: 686e030d08cSThomas Huth --without-default-devices 6878d316275SThomas Huth --without-default-features 688e030d08cSThomas Huth --disable-fdt 6898d316275SThomas Huth --disable-pie 6908d316275SThomas Huth --disable-qom-cast-debug 6918d316275SThomas Huth --disable-strip 692790761c4SThomas Huth --target-list-exclude=aarch64-softmmu,microblaze-softmmu,mips64-softmmu,mipsel-softmmu,ppc64-softmmu,sh4el-softmmu,xtensa-softmmu,x86_64-softmmu 693bb6e4734SThomas Huth MAKE_CHECK_ARGS: check 694f2f5c3e6SPhilippe Mathieu-Daudé 695f2f5c3e6SPhilippe Mathieu-Daudébuild-libvhost-user: 696e312d1fdSDaniel P. Berrangé extends: .base_job_template 697f2f5c3e6SPhilippe Mathieu-Daudé stage: build 698d4c7a565SDaniel P. Berrangé image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG 699f2f5c3e6SPhilippe Mathieu-Daudé needs: 700f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-fedora-container 701f2f5c3e6SPhilippe Mathieu-Daudé script: 702f2f5c3e6SPhilippe Mathieu-Daudé - mkdir subprojects/libvhost-user/build 703f2f5c3e6SPhilippe Mathieu-Daudé - cd subprojects/libvhost-user/build 704f2f5c3e6SPhilippe Mathieu-Daudé - meson 705f2f5c3e6SPhilippe Mathieu-Daudé - ninja 706f2f5c3e6SPhilippe Mathieu-Daudé 707f2f5c3e6SPhilippe Mathieu-Daudé# No targets are built here, just tools, docs, and unit tests. This 708f2f5c3e6SPhilippe Mathieu-Daudé# also feeds into the eventual documentation deployment steps later 709f2f5c3e6SPhilippe Mathieu-Daudébuild-tools-and-docs-debian: 71088b19e4eSAlex Bennée extends: 71188b19e4eSAlex Bennée - .native_build_job_template 71288b19e4eSAlex Bennée - .native_build_artifact_template 713f2f5c3e6SPhilippe Mathieu-Daudé needs: 714f2f5c3e6SPhilippe Mathieu-Daudé job: amd64-debian-container 715e312d1fdSDaniel P. Berrangé # when running on 'master' we use pre-existing container 716e312d1fdSDaniel P. Berrangé optional: true 717f2f5c3e6SPhilippe Mathieu-Daudé variables: 7188e721c32SAlex Bennée IMAGE: debian 7197630156dSPhilippe Mathieu-Daudé MAKE_CHECK_ARGS: check-unit ctags TAGS cscope 720f2f5c3e6SPhilippe Mathieu-Daudé CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools 721e312d1fdSDaniel P. Berrangé QEMU_JOB_PUBLISH: 1 722f2f5c3e6SPhilippe Mathieu-Daudé 723f2f5c3e6SPhilippe Mathieu-Daudé# Prepare for GitLab pages deployment. Anything copied into the 724f2f5c3e6SPhilippe Mathieu-Daudé# "public" directory will be deployed to $USER.gitlab.io/$PROJECT 725eafadbbbSDaniel P. Berrangé# 726eafadbbbSDaniel P. Berrangé# GitLab publishes from any branch that triggers a CI pipeline 727eafadbbbSDaniel P. Berrangé# 728eafadbbbSDaniel P. Berrangé# For the main repo we don't want to publish from 'staging' 729eafadbbbSDaniel P. Berrangé# since that content may not be pushed, nor do we wish to 730eafadbbbSDaniel P. Berrangé# publish from 'stable-NNN' branches as that content is outdated. 731eafadbbbSDaniel P. Berrangé# Thus we restrict to just the default branch 732eafadbbbSDaniel P. Berrangé# 733eafadbbbSDaniel P. Berrangé# For contributor forks we want to publish from any repo so 734eafadbbbSDaniel P. Berrangé# that users can see the results of their commits, regardless 735eafadbbbSDaniel P. Berrangé# of what topic branch they're currently using 736f2f5c3e6SPhilippe Mathieu-Daudépages: 737e312d1fdSDaniel P. Berrangé extends: .base_job_template 7388e721c32SAlex Bennée image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG 739f2f5c3e6SPhilippe Mathieu-Daudé stage: test 740f2f5c3e6SPhilippe Mathieu-Daudé needs: 741f2f5c3e6SPhilippe Mathieu-Daudé - job: build-tools-and-docs-debian 742f2f5c3e6SPhilippe Mathieu-Daudé script: 743f2f5c3e6SPhilippe Mathieu-Daudé - mkdir -p public 744f2f5c3e6SPhilippe Mathieu-Daudé # HTML-ised source tree 745f2f5c3e6SPhilippe Mathieu-Daudé - make gtags 74652a21689SPeter Maydell # We unset variables to work around a bug in some htags versions 74752a21689SPeter Maydell # which causes it to fail when the environment is large 74852a21689SPeter Maydell - CI_COMMIT_MESSAGE= CI_COMMIT_TAG_MESSAGE= htags 74952a21689SPeter Maydell -anT --tree-view=filetree -m qemu_init 750f2f5c3e6SPhilippe Mathieu-Daudé -t "Welcome to the QEMU sourcecode" 751f2f5c3e6SPhilippe Mathieu-Daudé - mv HTML public/src 752f2f5c3e6SPhilippe Mathieu-Daudé # Project documentation 753f2f5c3e6SPhilippe Mathieu-Daudé - make -C build install DESTDIR=$(pwd)/temp-install 754f2f5c3e6SPhilippe Mathieu-Daudé - mv temp-install/usr/local/share/doc/qemu/* public/ 755f2f5c3e6SPhilippe Mathieu-Daudé artifacts: 756cef63308SDaniel P. Berrangé when: on_success 757f2f5c3e6SPhilippe Mathieu-Daudé paths: 758f2f5c3e6SPhilippe Mathieu-Daudé - public 759e312d1fdSDaniel P. Berrangé variables: 760e312d1fdSDaniel P. Berrangé QEMU_JOB_PUBLISH: 1 76183aa1baaSPaolo Bonzini 76283aa1baaSPaolo Bonzinicoverity: 76383aa1baaSPaolo Bonzini image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG 76483aa1baaSPaolo Bonzini stage: build 76583aa1baaSPaolo Bonzini allow_failure: true 76683aa1baaSPaolo Bonzini timeout: 3h 76783aa1baaSPaolo Bonzini needs: 76883aa1baaSPaolo Bonzini - job: amd64-fedora-container 76983aa1baaSPaolo Bonzini optional: true 77083aa1baaSPaolo Bonzini before_script: 77183aa1baaSPaolo Bonzini - dnf install -y curl wget 77283aa1baaSPaolo Bonzini script: 77383aa1baaSPaolo Bonzini # would be nice to cancel the job if over quota (https://gitlab.com/gitlab-org/gitlab/-/issues/256089) 77483aa1baaSPaolo Bonzini # for example: 77583aa1baaSPaolo Bonzini # curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "${CI_SERVER_URL}/api/v4/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/cancel 77683aa1baaSPaolo Bonzini - 'scripts/coverity-scan/run-coverity-scan --check-upload-only || { exitcode=$?; if test $exitcode = 1; then 77783aa1baaSPaolo Bonzini exit 0; 77883aa1baaSPaolo Bonzini else 77983aa1baaSPaolo Bonzini exit $exitcode; 78083aa1baaSPaolo Bonzini fi; }; 78183aa1baaSPaolo Bonzini scripts/coverity-scan/run-coverity-scan --update-tools-only > update-tools.log 2>&1 || { cat update-tools.log; exit 1; }; 78283aa1baaSPaolo Bonzini scripts/coverity-scan/run-coverity-scan --no-update-tools' 78383aa1baaSPaolo Bonzini rules: 78483aa1baaSPaolo Bonzini - if: '$COVERITY_TOKEN == null' 78583aa1baaSPaolo Bonzini when: never 78683aa1baaSPaolo Bonzini - if: '$COVERITY_EMAIL == null' 78783aa1baaSPaolo Bonzini when: never 78883aa1baaSPaolo Bonzini # Never included on upstream pipelines, except for schedules 78983aa1baaSPaolo Bonzini - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_PIPELINE_SOURCE == "schedule"' 79083aa1baaSPaolo Bonzini when: on_success 79183aa1baaSPaolo Bonzini - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM' 79283aa1baaSPaolo Bonzini when: never 79383aa1baaSPaolo Bonzini # Forks don't get any pipeline unless QEMU_CI=1 or QEMU_CI=2 is set 79483aa1baaSPaolo Bonzini - if: '$QEMU_CI != "1" && $QEMU_CI != "2"' 79583aa1baaSPaolo Bonzini when: never 79683aa1baaSPaolo Bonzini # Always manual on forks even if $QEMU_CI == "2" 79783aa1baaSPaolo Bonzini - when: manual 798