- 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
- find . -type f -exec touch {} +
- make $MAKE_CHECK_ARGS
-.post_acceptance_template: &post_acceptance
+.acceptance_template: &acceptance_definition
+ cache:
+ key: "${CI_JOB_NAME}-cache"
+ paths:
+ - ${CI_PROJECT_DIR}/avocado-cache
+ policy: pull-push
+ 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
+ - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
+ du -chs ${CI_PROJECT_DIR}/avocado-cache ;
+ fi
after_script:
- cd build
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
- - du -chs $HOME/avocado/data/cache
+ - du -chs ${CI_PROJECT_DIR}/avocado-cache
-build-system-ubuntu-main:
+build-system-ubuntu:
<<: *native_build_job_definition
variables:
IMAGE: ubuntu2004
- TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu lm32-softmmu
- moxie-softmmu microblazeel-softmmu mips64el-softmmu m68k-softmmu ppc-softmmu
- riscv64-softmmu sparc-softmmu
+ 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-main:
+check-system-ubuntu:
<<: *native_test_job_definition
needs:
- - job: build-system-ubuntu-main
+ - job: build-system-ubuntu
artifacts: true
variables:
IMAGE: ubuntu2004
MAKE_CHECK_ARGS: check
-acceptance-system-ubuntu-main:
+acceptance-system-ubuntu:
<<: *native_test_job_definition
needs:
- - job: build-system-ubuntu-main
+ - job: build-system-ubuntu
artifacts: true
variables:
IMAGE: ubuntu2004
MAKE_CHECK_ARGS: check-acceptance
- <<: *post_acceptance
+ <<: *acceptance_definition
+
+build-system-debian:
+ <<: *native_build_job_definition
+ variables:
+ IMAGE: debian-amd64
+ 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
+
+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-alt:
+build-system-fedora:
<<: *native_build_job_definition
variables:
IMAGE: fedora
- TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu
- riscv32-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu x86_64-softmmu
- xtensa-softmmu nios2-softmmu or1k-softmmu
+ CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
+ 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-alt:
+check-system-fedora:
<<: *native_test_job_definition
needs:
- - job: build-system-fedora-alt
+ - job: build-system-fedora
artifacts: true
variables:
IMAGE: fedora
MAKE_CHECK_ARGS: check
-acceptance-system-fedora-alt:
+acceptance-system-fedora:
<<: *native_test_job_definition
needs:
- - job: build-system-fedora-alt
+ - job: build-system-fedora
artifacts: true
variables:
IMAGE: fedora
MAKE_CHECK_ARGS: check-acceptance
- <<: *post_acceptance
+ <<: *acceptance_definition
+
+build-system-centos:
+ <<: *native_build_job_definition
+ variables:
+ IMAGE: centos8
+ CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
+ 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-disabled:
<<: *native_build_job_definition
variables:
IMAGE: fedora
- CONFIGURE_ARGS: --disable-rdma --disable-slirp --disable-curl
- --disable-capstone --disable-live-block-migration --disable-glusterfs
- --disable-replication --disable-coroutine-pool --disable-smartcard
- --disable-guest-agent --disable-curses --disable-libxml2 --disable-tpm
- --disable-qom-cast-debug --disable-spice --disable-vhost-vsock
- --disable-vhost-net --disable-vhost-crypto --disable-vhost-user
- TARGETS: i386-softmmu ppc64-softmmu mips64-softmmu i386-linux-user
+ CONFIGURE_ARGS: --disable-attr --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-glusterfs --disable-gnutls
+ --disable-gtk --disable-guest-agent --disable-iconv --disable-kvm
+ --disable-libiscsi --disable-libpmem --disable-libssh --disable-libusb
+ --disable-libxml2 --disable-linux-aio --disable-live-block-migration
+ --disable-lzo --disable-malloc-trim --disable-mpath --disable-nettle
+ --disable-numa --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-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
build-tcg-disabled:
IMAGE: fedora
CONFIGURE_ARGS: --cc=clang --cxx=clang++
TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
- ppc-softmmu s390x-softmmu x86_64-softmmu arm-linux-user
+ 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: check-tcg
+ TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
+ unicore32-softmmu
+ 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=1000 -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:
- 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="${tg}-softmmu/qemu-system-${tg}" ;
+ export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
./tests/qtest/boot-serial-test || exit 1 ;
./tests/qtest/cdrom-test || exit 1 ;
done
- - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test
- - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" ./tests/qtest/pxe-test -m slow
+ - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
+ - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
+
+# 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