GitLab CI patches queue
- Explode .gitlab-ci.yml in reusable templates - Add job to cross build/test TCI on i386 host - Remove CentOS 7 linux-user build job - Temporarily set Avocado-based jobs in manual mode - Increase time to hold Avocado reports to 1 week -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmCvr3oACgkQ4+MsLN6t wN6P3BAA00vyWpFrrlWvkc0MIJyZb0s3hxYyi58pgaO3Bp7xwRBoBPBmBiHxYh8A CwlrpPPPLWLmgPW7+tfYp2VmyArH5Gqqv9SEPnbbxcoyMyJyEpygPwuGeC8CohBj 8ljsjp2FnJsU15FjkgBV57EJx3a4fEIiaWPZDbSJoqgPv38BoShyNKyG36TU5aC3 q3UYuThkKETCeERjcjY5zFFjcwoKb60+zA/ihHLuBEl+nXyb4rfzwNdAJQE9bsX4 thjxdG0I86LqtKqIsWntOmCu+VCiSg/ZgNKiE2kZZwqpTyCqqbsib6mwQW42L1yz ChvPILN3KwKBDGfUF1SQ9waYoJjyJ25J1vzQK59uyWxpOdokKGDZgWbbQrv5g49Q gv/7xbY+v97BBXOsPyqI3jJPwJevMMyiwgNCNo/CdQH5cZ8jayE70dfhm43cZ37D mk/xx7lv3KpWUZUasNRQDddZcACPrVYq9ipyt1cbH77Wf0QpvpEABE4LUj0R61PA XTkQAaswZEpGpWxxAQJHYt1mokflg3xfHJ7xoB7RykD0vzvZCj7FUbych3khRg72 B4jjgHrgn0v+DxCrrAsncKZCfF6MD3bVPQV9dZeXdey06S5TvtStf0674dGdbF4I 26ieKg4qrrn/Ni1c894rElXKF29oGkOjyrcj+lq3rknbhM/K1Fc= =biX7 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/philmd/tags/gitlab-ci-20210527' into staging GitLab CI patches queue - Explode .gitlab-ci.yml in reusable templates - Add job to cross build/test TCI on i386 host - Remove CentOS 7 linux-user build job - Temporarily set Avocado-based jobs in manual mode - Increase time to hold Avocado reports to 1 week # gpg: Signature made Thu 27 May 2021 15:40:58 BST # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full] # Primary key fingerprint: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE * remotes/philmd/tags/gitlab-ci-20210527: gitlab: Convert check-dco/check-patch jobs to the 'rules' syntax gitlab: Use $CI_DEFAULT_BRANCH instead of hardcoded 'master' gitlab: Run Avocado tests manually (except mainstream CI) gitlab: Keep Avocado reports during 1 week gitlab: Extract cross-container jobs to container-cross.yml gitlab: Document how forks can use different set of jobs gitlab: Move current job set to qemu-project.yml gitlab: Extract all default build/test jobs to buildtest.yml gitlab: Drop linux user build job for CentOS 7 gitlab: Extract core container jobs to container-core.yml gitlab: Extract default build/test jobs templates gitlab: Extract build stages to stages.yml gitlab: Extract DCO/style check jobs to static_checks.yml gitlab: Extract crossbuild job templates to crossbuild-template.yml gitlab: Extract container job template to container-template.yml gitlab: Enable cross-i386 builds of TCI gitlab: Rename ACCEL_CONFIGURE_OPTS to EXTRA_CONFIGURE_OPTS gitlab: Replace YAML anchors by extends (acceptance_test_job) Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
c8616fc767
81
.gitlab-ci.d/buildtest-template.yml
Normal file
81
.gitlab-ci.d/buildtest-template.yml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
.native_build_job_template:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
||||||
|
before_script:
|
||||||
|
- JOBS=$(expr $(nproc) + 1)
|
||||||
|
script:
|
||||||
|
- if test -n "$LD_JOBS";
|
||||||
|
then
|
||||||
|
scripts/git-submodule.sh update meson ;
|
||||||
|
fi
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- if test -n "$TARGETS";
|
||||||
|
then
|
||||||
|
../configure --enable-werror --disable-docs ${LD_JOBS:+--meson=git} $CONFIGURE_ARGS --target-list="$TARGETS" ;
|
||||||
|
else
|
||||||
|
../configure --enable-werror --disable-docs ${LD_JOBS:+--meson=git} $CONFIGURE_ARGS ;
|
||||||
|
fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
||||||
|
- if test -n "$LD_JOBS";
|
||||||
|
then
|
||||||
|
../meson/meson.py configure . -Dbackend_max_links="$LD_JOBS" ;
|
||||||
|
fi || exit 1;
|
||||||
|
- make -j"$JOBS"
|
||||||
|
- if test -n "$MAKE_CHECK_ARGS";
|
||||||
|
then
|
||||||
|
make -j"$JOBS" $MAKE_CHECK_ARGS ;
|
||||||
|
fi
|
||||||
|
|
||||||
|
.native_test_job_template:
|
||||||
|
stage: test
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
||||||
|
script:
|
||||||
|
- scripts/git-submodule.sh update
|
||||||
|
$(sed -n '/GIT_SUBMODULES=/ s/.*=// p' build/config-host.mak)
|
||||||
|
- cd build
|
||||||
|
- find . -type f -exec touch {} +
|
||||||
|
# Avoid recompiling by hiding ninja with NINJA=":"
|
||||||
|
- make NINJA=":" $MAKE_CHECK_ARGS
|
||||||
|
|
||||||
|
.acceptance_test_job_template:
|
||||||
|
extends: .native_test_job_template
|
||||||
|
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: on_failure
|
||||||
|
expire_in: 7 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", "INTERRUPT"]'
|
||||||
|
>> ~/.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
|
||||||
|
rules:
|
||||||
|
# Only run these jobs if running on the mainstream namespace,
|
||||||
|
# or if the user set the QEMU_CI_AVOCADO_TESTING variable (either
|
||||||
|
# in its namespace setting or via git-push option, see documentation
|
||||||
|
# in /.gitlab-ci.yml of this repository).
|
||||||
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
||||||
|
when: always
|
||||||
|
- if: '$QEMU_CI_AVOCADO_TESTING'
|
||||||
|
when: always
|
||||||
|
# Otherwise, set to manual (the jobs are created but not run).
|
||||||
|
- when: manual
|
||||||
|
allow_failure: true
|
730
.gitlab-ci.d/buildtest.yml
Normal file
730
.gitlab-ci.d/buildtest.yml
Normal file
@ -0,0 +1,730 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
# 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-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
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
gprof-gcov:
|
||||||
|
extends: .native_build_job_template
|
||||||
|
needs:
|
||||||
|
job: amd64-ubuntu2004-container
|
||||||
|
variables:
|
||||||
|
IMAGE: ubuntu2004
|
||||||
|
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
||||||
|
timeout: 70m
|
||||||
|
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
|
||||||
|
|
||||||
|
# Most jobs test latest gcrypt or nettle builds
|
||||||
|
#
|
||||||
|
# These jobs test old gcrypt and nettle from RHEL7
|
||||||
|
# which had some API differences.
|
||||||
|
crypto-old-nettle:
|
||||||
|
extends: .native_build_job_template
|
||||||
|
needs:
|
||||||
|
job: amd64-centos7-container
|
||||||
|
variables:
|
||||||
|
IMAGE: centos7
|
||||||
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||||
|
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
crypto-old-gcrypt:
|
||||||
|
extends: .native_build_job_template
|
||||||
|
needs:
|
||||||
|
job: amd64-centos7-container
|
||||||
|
variables:
|
||||||
|
IMAGE: centos7
|
||||||
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||||
|
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
crypto-only-gnutls:
|
||||||
|
extends: .native_build_job_template
|
||||||
|
needs:
|
||||||
|
job: amd64-centos7-container
|
||||||
|
variables:
|
||||||
|
IMAGE: centos7
|
||||||
|
TARGETS: x86_64-softmmu x86_64-linux-user
|
||||||
|
CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
|
||||||
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
|
||||||
|
# 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
|
||||||
|
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
|
17
.gitlab-ci.d/container-core.yml
Normal file
17
.gitlab-ci.d/container-core.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
include:
|
||||||
|
- local: '/.gitlab-ci.d/container-template.yml'
|
||||||
|
|
||||||
|
amd64-centos8-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: centos8
|
||||||
|
|
||||||
|
amd64-fedora-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: fedora
|
||||||
|
|
||||||
|
amd64-debian10-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: debian10
|
192
.gitlab-ci.d/container-cross.yml
Normal file
192
.gitlab-ci.d/container-cross.yml
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
alpha-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-alpha-cross
|
||||||
|
|
||||||
|
amd64-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-amd64-cross
|
||||||
|
|
||||||
|
amd64-debian-user-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-all-test-cross
|
||||||
|
|
||||||
|
arm64-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-arm64-cross
|
||||||
|
|
||||||
|
arm64-test-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian11-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-arm64-test-cross
|
||||||
|
|
||||||
|
armel-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-armel-cross
|
||||||
|
|
||||||
|
armhf-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-armhf-cross
|
||||||
|
|
||||||
|
# We never want to build hexagon in the CI system and by default we
|
||||||
|
# always want to refer to the master registry where it lives.
|
||||||
|
hexagon-cross-container:
|
||||||
|
image: docker:stable
|
||||||
|
stage: containers
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
||||||
|
when: never
|
||||||
|
- when: always
|
||||||
|
variables:
|
||||||
|
NAME: debian-hexagon-cross
|
||||||
|
GIT_DEPTH: 1
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
before_script:
|
||||||
|
- export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
|
||||||
|
- export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest"
|
||||||
|
- docker info
|
||||||
|
- docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
||||||
|
script:
|
||||||
|
- echo "TAG:$TAG"
|
||||||
|
- echo "COMMON_TAG:$COMMON_TAG"
|
||||||
|
- docker pull $COMMON_TAG
|
||||||
|
- docker tag $COMMON_TAG $TAG
|
||||||
|
- docker push "$TAG"
|
||||||
|
after_script:
|
||||||
|
- docker logout
|
||||||
|
|
||||||
|
hppa-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-hppa-cross
|
||||||
|
|
||||||
|
m68k-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-m68k-cross
|
||||||
|
|
||||||
|
mips64-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-mips64-cross
|
||||||
|
|
||||||
|
mips64el-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-mips64el-cross
|
||||||
|
|
||||||
|
mips-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-mips-cross
|
||||||
|
|
||||||
|
mipsel-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-mipsel-cross
|
||||||
|
|
||||||
|
powerpc-test-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian11-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-powerpc-test-cross
|
||||||
|
|
||||||
|
ppc64el-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-ppc64el-cross
|
||||||
|
|
||||||
|
riscv64-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-riscv64-cross
|
||||||
|
|
||||||
|
s390x-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-s390x-cross
|
||||||
|
|
||||||
|
sh4-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-sh4-cross
|
||||||
|
|
||||||
|
sparc64-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-sparc64-cross
|
||||||
|
|
||||||
|
tricore-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
stage: containers-layer2
|
||||||
|
needs: ['amd64-debian10-container']
|
||||||
|
variables:
|
||||||
|
NAME: debian-tricore-cross
|
||||||
|
|
||||||
|
xtensa-debian-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: debian-xtensa-cross
|
||||||
|
|
||||||
|
cris-fedora-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: fedora-cris-cross
|
||||||
|
|
||||||
|
i386-fedora-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: fedora-i386-cross
|
||||||
|
|
||||||
|
win32-fedora-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: fedora-win32-cross
|
||||||
|
|
||||||
|
win64-fedora-cross-container:
|
||||||
|
extends: .container_job_template
|
||||||
|
variables:
|
||||||
|
NAME: fedora-win64-cross
|
21
.gitlab-ci.d/container-template.yml
Normal file
21
.gitlab-ci.d/container-template.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
.container_job_template:
|
||||||
|
image: docker:stable
|
||||||
|
stage: containers
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
before_script:
|
||||||
|
- export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
|
||||||
|
- export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/$NAME:latest"
|
||||||
|
- apk add python3
|
||||||
|
- docker info
|
||||||
|
- docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
||||||
|
script:
|
||||||
|
- echo "TAG:$TAG"
|
||||||
|
- echo "COMMON_TAG:$COMMON_TAG"
|
||||||
|
- ./tests/docker/docker.py --engine docker build
|
||||||
|
-t "qemu/$NAME" -f "tests/docker/dockerfiles/$NAME.docker"
|
||||||
|
-r $CI_REGISTRY/qemu-project/qemu
|
||||||
|
- docker tag "qemu/$NAME" "$TAG"
|
||||||
|
- docker push "$TAG"
|
||||||
|
after_script:
|
||||||
|
- docker logout
|
@ -1,24 +1,6 @@
|
|||||||
.container_job_template:
|
include:
|
||||||
image: docker:stable
|
- local: '/.gitlab-ci.d/container-core.yml'
|
||||||
stage: containers
|
- local: '/.gitlab-ci.d/container-cross.yml'
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
before_script:
|
|
||||||
- export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
|
|
||||||
- export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/$NAME:latest"
|
|
||||||
- apk add python3
|
|
||||||
- docker info
|
|
||||||
- docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
|
||||||
script:
|
|
||||||
- echo "TAG:$TAG"
|
|
||||||
- echo "COMMON_TAG:$COMMON_TAG"
|
|
||||||
- ./tests/docker/docker.py --engine docker build
|
|
||||||
-t "qemu/$NAME" -f "tests/docker/dockerfiles/$NAME.docker"
|
|
||||||
-r $CI_REGISTRY/qemu-project/qemu
|
|
||||||
- docker tag "qemu/$NAME" "$TAG"
|
|
||||||
- docker push "$TAG"
|
|
||||||
after_script:
|
|
||||||
- docker logout
|
|
||||||
|
|
||||||
amd64-alpine-container:
|
amd64-alpine-container:
|
||||||
extends: .container_job_template
|
extends: .container_job_template
|
||||||
@ -30,42 +12,11 @@ amd64-centos7-container:
|
|||||||
variables:
|
variables:
|
||||||
NAME: centos7
|
NAME: centos7
|
||||||
|
|
||||||
amd64-centos8-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: centos8
|
|
||||||
|
|
||||||
amd64-debian10-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: debian10
|
|
||||||
|
|
||||||
amd64-debian11-container:
|
amd64-debian11-container:
|
||||||
extends: .container_job_template
|
extends: .container_job_template
|
||||||
variables:
|
variables:
|
||||||
NAME: debian11
|
NAME: debian11
|
||||||
|
|
||||||
alpha-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-alpha-cross
|
|
||||||
|
|
||||||
amd64-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-amd64-cross
|
|
||||||
|
|
||||||
amd64-debian-user-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-all-test-cross
|
|
||||||
|
|
||||||
amd64-debian-container:
|
amd64-debian-container:
|
||||||
extends: .container_job_template
|
extends: .container_job_template
|
||||||
stage: containers-layer2
|
stage: containers-layer2
|
||||||
@ -73,183 +24,6 @@ amd64-debian-container:
|
|||||||
variables:
|
variables:
|
||||||
NAME: debian-amd64
|
NAME: debian-amd64
|
||||||
|
|
||||||
arm64-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-arm64-cross
|
|
||||||
|
|
||||||
arm64-test-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian11-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-arm64-test-cross
|
|
||||||
|
|
||||||
armel-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-armel-cross
|
|
||||||
|
|
||||||
armhf-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-armhf-cross
|
|
||||||
|
|
||||||
# We never want to build hexagon in the CI system and by default we
|
|
||||||
# always want to refer to the master registry where it lives.
|
|
||||||
hexagon-cross-container:
|
|
||||||
image: docker:stable
|
|
||||||
stage: containers
|
|
||||||
rules:
|
|
||||||
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
|
||||||
when: never
|
|
||||||
- when: always
|
|
||||||
variables:
|
|
||||||
NAME: debian-hexagon-cross
|
|
||||||
GIT_DEPTH: 1
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
before_script:
|
|
||||||
- export TAG="$CI_REGISTRY_IMAGE/qemu/$NAME:latest"
|
|
||||||
- export COMMON_TAG="$CI_REGISTRY/qemu-project/qemu/qemu/$NAME:latest"
|
|
||||||
- docker info
|
|
||||||
- docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
|
||||||
script:
|
|
||||||
- echo "TAG:$TAG"
|
|
||||||
- echo "COMMON_TAG:$COMMON_TAG"
|
|
||||||
- docker pull $COMMON_TAG
|
|
||||||
- docker tag $COMMON_TAG $TAG
|
|
||||||
- docker push "$TAG"
|
|
||||||
after_script:
|
|
||||||
- docker logout
|
|
||||||
|
|
||||||
hppa-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-hppa-cross
|
|
||||||
|
|
||||||
m68k-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-m68k-cross
|
|
||||||
|
|
||||||
mips64-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-mips64-cross
|
|
||||||
|
|
||||||
mips64el-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-mips64el-cross
|
|
||||||
|
|
||||||
mips-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-mips-cross
|
|
||||||
|
|
||||||
mipsel-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-mipsel-cross
|
|
||||||
|
|
||||||
powerpc-test-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian11-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-powerpc-test-cross
|
|
||||||
|
|
||||||
ppc64el-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-ppc64el-cross
|
|
||||||
|
|
||||||
riscv64-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-riscv64-cross
|
|
||||||
|
|
||||||
s390x-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-s390x-cross
|
|
||||||
|
|
||||||
sh4-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-sh4-cross
|
|
||||||
|
|
||||||
sparc64-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-sparc64-cross
|
|
||||||
|
|
||||||
tricore-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
stage: containers-layer2
|
|
||||||
needs: ['amd64-debian10-container']
|
|
||||||
variables:
|
|
||||||
NAME: debian-tricore-cross
|
|
||||||
|
|
||||||
xtensa-debian-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: debian-xtensa-cross
|
|
||||||
|
|
||||||
cris-fedora-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: fedora-cris-cross
|
|
||||||
|
|
||||||
amd64-fedora-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: fedora
|
|
||||||
|
|
||||||
i386-fedora-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: fedora-i386-cross
|
|
||||||
|
|
||||||
win32-fedora-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: fedora-win32-cross
|
|
||||||
|
|
||||||
win64-fedora-cross-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: fedora-win64-cross
|
|
||||||
|
|
||||||
amd64-ubuntu1804-container:
|
amd64-ubuntu1804-container:
|
||||||
extends: .container_job_template
|
extends: .container_job_template
|
||||||
variables:
|
variables:
|
||||||
|
41
.gitlab-ci.d/crossbuild-template.yml
Normal file
41
.gitlab-ci.d/crossbuild-template.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
.cross_system_build_job:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
||||||
|
timeout: 80m
|
||||||
|
script:
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
||||||
|
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
||||||
|
--disable-user --target-list-exclude="arm-softmmu cris-softmmu
|
||||||
|
i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
|
||||||
|
mips64-softmmu ppc-softmmu sh4-softmmu xtensa-softmmu"
|
||||||
|
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
|
||||||
|
|
||||||
|
# Job to cross-build specific accelerators.
|
||||||
|
#
|
||||||
|
# Set the $ACCEL variable to select the specific accelerator (default to
|
||||||
|
# KVM), and set extra options (such disabling other accelerators) via the
|
||||||
|
# $EXTRA_CONFIGURE_OPTS variable.
|
||||||
|
.cross_accel_build_job:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
||||||
|
timeout: 30m
|
||||||
|
script:
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
||||||
|
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
||||||
|
--disable-tools --enable-${ACCEL:-kvm} $EXTRA_CONFIGURE_OPTS
|
||||||
|
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
|
||||||
|
|
||||||
|
.cross_user_build_job:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
||||||
|
script:
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
||||||
|
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
||||||
|
--disable-system
|
||||||
|
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
|
@ -1,44 +1,5 @@
|
|||||||
.cross_system_build_job:
|
include:
|
||||||
stage: build
|
- local: '/.gitlab-ci.d/crossbuild-template.yml'
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
||||||
timeout: 80m
|
|
||||||
script:
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
|
||||||
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
|
||||||
--disable-user --target-list-exclude="arm-softmmu cris-softmmu
|
|
||||||
i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
|
|
||||||
mips64-softmmu ppc-softmmu sh4-softmmu xtensa-softmmu"
|
|
||||||
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
|
|
||||||
|
|
||||||
# Job to cross-build specific accelerators.
|
|
||||||
#
|
|
||||||
# Set the $ACCEL variable to select the specific accelerator (default to
|
|
||||||
# KVM), and set extra options (such disabling other accelerators) via the
|
|
||||||
# $ACCEL_CONFIGURE_OPTS variable.
|
|
||||||
.cross_accel_build_job:
|
|
||||||
stage: build
|
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
||||||
timeout: 30m
|
|
||||||
script:
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
|
||||||
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
|
||||||
--disable-tools --enable-${ACCEL:-kvm} $ACCEL_CONFIGURE_OPTS
|
|
||||||
- make -j$(expr $(nproc) + 1) all check-build
|
|
||||||
|
|
||||||
.cross_user_build_job:
|
|
||||||
stage: build
|
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
||||||
script:
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
|
||||||
../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
|
||||||
--disable-system
|
|
||||||
- make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
|
|
||||||
|
|
||||||
cross-armel-system:
|
cross-armel-system:
|
||||||
extends: .cross_system_build_job
|
extends: .cross_system_build_job
|
||||||
@ -98,6 +59,15 @@ cross-i386-user:
|
|||||||
IMAGE: fedora-i386-cross
|
IMAGE: fedora-i386-cross
|
||||||
MAKE_CHECK_ARGS: check
|
MAKE_CHECK_ARGS: check
|
||||||
|
|
||||||
|
cross-i386-tci:
|
||||||
|
extends: .cross_accel_build_job
|
||||||
|
timeout: 60m
|
||||||
|
variables:
|
||||||
|
IMAGE: fedora-i386-cross
|
||||||
|
ACCEL: tcg-interpreter
|
||||||
|
EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,aarch64-softmmu,aarch64-linux-user,ppc-softmmu,ppc-linux-user
|
||||||
|
MAKE_CHECK_ARGS: check check-tcg
|
||||||
|
|
||||||
cross-mips-system:
|
cross-mips-system:
|
||||||
extends: .cross_system_build_job
|
extends: .cross_system_build_job
|
||||||
needs:
|
needs:
|
||||||
@ -174,7 +144,7 @@ cross-s390x-kvm-only:
|
|||||||
job: s390x-debian-cross-container
|
job: s390x-debian-cross-container
|
||||||
variables:
|
variables:
|
||||||
IMAGE: debian-s390x-cross
|
IMAGE: debian-s390x-cross
|
||||||
ACCEL_CONFIGURE_OPTS: --disable-tcg
|
EXTRA_CONFIGURE_OPTS: --disable-tcg
|
||||||
|
|
||||||
cross-mips64el-kvm-only:
|
cross-mips64el-kvm-only:
|
||||||
extends: .cross_accel_build_job
|
extends: .cross_accel_build_job
|
||||||
@ -182,7 +152,7 @@ cross-mips64el-kvm-only:
|
|||||||
job: mips64el-debian-cross-container
|
job: mips64el-debian-cross-container
|
||||||
variables:
|
variables:
|
||||||
IMAGE: debian-mips64el-cross
|
IMAGE: debian-mips64el-cross
|
||||||
ACCEL_CONFIGURE_OPTS: --disable-tcg --target-list=mips64el-softmmu
|
EXTRA_CONFIGURE_OPTS: --disable-tcg --target-list=mips64el-softmmu
|
||||||
|
|
||||||
cross-win32-system:
|
cross-win32-system:
|
||||||
extends: .cross_system_build_job
|
extends: .cross_system_build_job
|
||||||
@ -205,7 +175,7 @@ cross-amd64-xen-only:
|
|||||||
variables:
|
variables:
|
||||||
IMAGE: debian-amd64-cross
|
IMAGE: debian-amd64-cross
|
||||||
ACCEL: xen
|
ACCEL: xen
|
||||||
ACCEL_CONFIGURE_OPTS: --disable-tcg --disable-kvm
|
EXTRA_CONFIGURE_OPTS: --disable-tcg --disable-kvm
|
||||||
|
|
||||||
cross-arm64-xen-only:
|
cross-arm64-xen-only:
|
||||||
extends: .cross_accel_build_job
|
extends: .cross_accel_build_job
|
||||||
@ -214,4 +184,4 @@ cross-arm64-xen-only:
|
|||||||
variables:
|
variables:
|
||||||
IMAGE: debian-arm64-cross
|
IMAGE: debian-arm64-cross
|
||||||
ACCEL: xen
|
ACCEL: xen
|
||||||
ACCEL_CONFIGURE_OPTS: --disable-tcg --disable-kvm
|
EXTRA_CONFIGURE_OPTS: --disable-tcg --disable-kvm
|
||||||
|
11
.gitlab-ci.d/qemu-project.yml
Normal file
11
.gitlab-ci.d/qemu-project.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# This file contains the set of jobs run by the QEMU project:
|
||||||
|
# https://gitlab.com/qemu-project/qemu/-/pipelines
|
||||||
|
|
||||||
|
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.yml'
|
||||||
|
- local: '/.gitlab-ci.d/static_checks.yml'
|
8
.gitlab-ci.d/stages.yml
Normal file
8
.gitlab-ci.d/stages.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# 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
|
26
.gitlab-ci.d/static_checks.yml
Normal file
26
.gitlab-ci.d/static_checks.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
check-patch:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
||||||
|
needs:
|
||||||
|
job: amd64-centos8-container
|
||||||
|
script: .gitlab-ci.d/check-patch.py
|
||||||
|
variables:
|
||||||
|
GIT_DEPTH: 1000
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
when: never
|
||||||
|
- when: on_success
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
|
check-dco:
|
||||||
|
stage: build
|
||||||
|
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
||||||
|
needs:
|
||||||
|
job: amd64-centos8-container
|
||||||
|
script: .gitlab-ci.d/check-dco.py
|
||||||
|
variables:
|
||||||
|
GIT_DEPTH: 1000
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
when: never
|
||||||
|
- when: on_success
|
889
.gitlab-ci.yml
889
.gitlab-ci.yml
@ -1,854 +1,39 @@
|
|||||||
# Currently we have two build stages after our containers are built:
|
#
|
||||||
# - build (for traditional build and test or first stage build)
|
# This is the GitLab CI configuration file for the mainstream QEMU
|
||||||
# - test (for test stages, using build artefacts from a build stage)
|
# project: https://gitlab.com/qemu-project/qemu/-/pipelines
|
||||||
stages:
|
#
|
||||||
- containers
|
# !!! DO NOT ADD ANY NEW CONFIGURATION TO THIS FILE !!!
|
||||||
- containers-layer2
|
#
|
||||||
- build
|
# Only documentation or comments is accepted.
|
||||||
- test
|
#
|
||||||
|
# To use a different set of jobs than the mainstream QEMU project,
|
||||||
|
# you need to set the location of your custom yml file at "custom CI/CD
|
||||||
|
# configuration path", on your GitLab CI namespace:
|
||||||
|
# https://docs.gitlab.com/ee/ci/pipelines/settings.html#custom-cicd-configuration-path
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# QEMU CI jobs are based on templates. Some templates provide
|
||||||
|
# user-configurable options, modifiable via configuration variables.
|
||||||
|
#
|
||||||
|
# These variables can be set globally in the user's CI namespace
|
||||||
|
# setting:
|
||||||
|
# https://docs.gitlab.com/ee/ci/variables/#create-a-custom-variable-in-the-ui
|
||||||
|
# or set manually each time a branch/tag is pushed, as a git-push
|
||||||
|
# command line argument:
|
||||||
|
# https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd
|
||||||
|
#
|
||||||
|
# Example setting the QEMU_CI_EXAMPLE_VAR variable:
|
||||||
|
#
|
||||||
|
# git push -o ci.variable="QEMU_CI_EXAMPLE_VAR=value" myrepo mybranch
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# List of environment variables that can be use to modify the set
|
||||||
|
# of jobs selected:
|
||||||
|
#
|
||||||
|
# - QEMU_CI_AVOCADO_TESTING
|
||||||
|
# If set, tests using the Avocado framework will be run
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- local: '/.gitlab-ci.d/edk2.yml'
|
- local: '/.gitlab-ci.d/qemu-project.yml'
|
||||||
- local: '/.gitlab-ci.d/opensbi.yml'
|
|
||||||
- local: '/.gitlab-ci.d/containers.yml'
|
|
||||||
- local: '/.gitlab-ci.d/crossbuilds.yml'
|
|
||||||
|
|
||||||
.native_build_job_template:
|
|
||||||
stage: build
|
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
||||||
before_script:
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
script:
|
|
||||||
- if test -n "$LD_JOBS";
|
|
||||||
then
|
|
||||||
scripts/git-submodule.sh update meson ;
|
|
||||||
fi
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- if test -n "$TARGETS";
|
|
||||||
then
|
|
||||||
../configure --enable-werror --disable-docs ${LD_JOBS:+--meson=git} $CONFIGURE_ARGS --target-list="$TARGETS" ;
|
|
||||||
else
|
|
||||||
../configure --enable-werror --disable-docs ${LD_JOBS:+--meson=git} $CONFIGURE_ARGS ;
|
|
||||||
fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
||||||
- if test -n "$LD_JOBS";
|
|
||||||
then
|
|
||||||
../meson/meson.py configure . -Dbackend_max_links="$LD_JOBS" ;
|
|
||||||
fi || exit 1;
|
|
||||||
- make -j"$JOBS"
|
|
||||||
- if test -n "$MAKE_CHECK_ARGS";
|
|
||||||
then
|
|
||||||
make -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
||||||
fi
|
|
||||||
|
|
||||||
.native_test_job_template:
|
|
||||||
stage: test
|
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
|
|
||||||
script:
|
|
||||||
- scripts/git-submodule.sh update
|
|
||||||
$(sed -n '/GIT_SUBMODULES=/ s/.*=// p' build/config-host.mak)
|
|
||||||
- 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", "INTERRUPT"]'
|
|
||||||
>> ~/.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:
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-alpine
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: alpine
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-ubuntu
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: ubuntu2004
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-debian
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: debian-amd64
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-fedora
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: fedora
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-centos
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: centos8
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-system-opensuse
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: opensuse-leap
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
#
|
|
||||||
# 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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-cfi-aarch64
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: fedora
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-cfi-ppc64-s390x
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: fedora
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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: .native_test_job_template
|
|
||||||
needs:
|
|
||||||
- job: build-cfi-x86_64
|
|
||||||
artifacts: true
|
|
||||||
variables:
|
|
||||||
IMAGE: fedora
|
|
||||||
MAKE_CHECK_ARGS: check-acceptance
|
|
||||||
<<: *acceptance_definition
|
|
||||||
|
|
||||||
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
|
|
||||||
gprof-gcov:
|
|
||||||
extends: .native_build_job_template
|
|
||||||
needs:
|
|
||||||
job: amd64-ubuntu2004-container
|
|
||||||
variables:
|
|
||||||
IMAGE: ubuntu2004
|
|
||||||
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
|
||||||
MAKE_CHECK_ARGS: check
|
|
||||||
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
|
||||||
timeout: 70m
|
|
||||||
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
|
|
||||||
|
|
||||||
# Most jobs test latest gcrypt or nettle builds
|
|
||||||
#
|
|
||||||
# These jobs test old gcrypt and nettle from RHEL7
|
|
||||||
# which had some API differences.
|
|
||||||
crypto-old-nettle:
|
|
||||||
extends: .native_build_job_template
|
|
||||||
needs:
|
|
||||||
job: amd64-centos7-container
|
|
||||||
variables:
|
|
||||||
IMAGE: centos7
|
|
||||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
||||||
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
|
|
||||||
MAKE_CHECK_ARGS: check
|
|
||||||
|
|
||||||
crypto-old-gcrypt:
|
|
||||||
extends: .native_build_job_template
|
|
||||||
needs:
|
|
||||||
job: amd64-centos7-container
|
|
||||||
variables:
|
|
||||||
IMAGE: centos7
|
|
||||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
||||||
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
|
|
||||||
MAKE_CHECK_ARGS: check
|
|
||||||
|
|
||||||
crypto-only-gnutls:
|
|
||||||
extends: .native_build_job_template
|
|
||||||
needs:
|
|
||||||
job: amd64-centos7-container
|
|
||||||
variables:
|
|
||||||
IMAGE: centos7
|
|
||||||
TARGETS: x86_64-softmmu x86_64-linux-user
|
|
||||||
CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
|
|
||||||
MAKE_CHECK_ARGS: check
|
|
||||||
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
check-patch:
|
|
||||||
stage: build
|
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
|
|
||||||
needs:
|
|
||||||
job: amd64-centos8-container
|
|
||||||
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
|
|
||||||
needs:
|
|
||||||
job: amd64-centos8-container
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user