646 lines
18 KiB
YAML
646 lines
18 KiB
YAML
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-unit check-qtest
|
|
|
|
avocado-system-alpine:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-alpine
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: alpine
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
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
|
|
|
|
avocado-system-ubuntu:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-ubuntu
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
build-system-debian:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-debian-container
|
|
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:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
avocado-system-debian:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
crash-test-debian:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-debian
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: debian-amd64
|
|
script:
|
|
- cd build
|
|
- scripts/device-crash-test -q ./qemu-system-i386
|
|
|
|
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
|
|
|
|
avocado-system-fedora:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
crash-test-fedora:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-system-fedora
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
script:
|
|
- cd build
|
|
- scripts/device-crash-test -q ./qemu-system-ppc
|
|
- scripts/device-crash-test -q ./qemu-system-riscv32
|
|
|
|
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 --enable-docs
|
|
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
|
|
|
|
avocado-system-centos:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-centos
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: centos8
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
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
|
|
|
|
avocado-system-opensuse:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-system-opensuse
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: opensuse-leap
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
|
|
# 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 208 221 226 227 236 253 277 image-fleecing
|
|
- ./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 200 202
|
|
208 209 216 218 227 234 246 247 248 250 254 255 257 258
|
|
260 261 262 263 264 270 272 273 277 279 image-fleecing
|
|
|
|
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
|
|
|
|
# We build tricore in a very minimal tricore only container
|
|
build-tricore-softmmu:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: tricore-debian-cross-container
|
|
variables:
|
|
IMAGE: debian-tricore-cross
|
|
CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug
|
|
TARGETS: tricore-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/avocado 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
|
|
rules:
|
|
# FIXME: This job is often failing, likely due to out-of-memory problems in
|
|
# the constrained containers of the shared runners. Thus this is marked as
|
|
# manual until the situation has been solved.
|
|
- when: manual
|
|
allow_failure: true
|
|
|
|
check-cfi-aarch64:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-cfi-aarch64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
avocado-cfi-aarch64:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-cfi-aarch64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
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
|
|
rules:
|
|
# FIXME: This job is often failing, likely due to out-of-memory problems in
|
|
# the constrained containers of the shared runners. Thus this is marked as
|
|
# manual until the situation has been solved.
|
|
- when: manual
|
|
allow_failure: true
|
|
|
|
check-cfi-ppc64-s390x:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-cfi-ppc64-s390x
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check
|
|
|
|
avocado-cfi-ppc64-s390x:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-cfi-ppc64-s390x
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
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
|
|
|
|
avocado-cfi-x86_64:
|
|
extends: .avocado_test_job_template
|
|
needs:
|
|
- job: build-cfi-x86_64
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: fedora
|
|
MAKE_CHECK_ARGS: check-avocado
|
|
|
|
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
|
|
|
|
# gprof/gcov are GCC features
|
|
build-gprof-gcov:
|
|
extends: .native_build_job_template
|
|
needs:
|
|
job: amd64-ubuntu2004-container
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
|
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
|
artifacts:
|
|
expire_in: 1 days
|
|
paths:
|
|
- build
|
|
|
|
check-gprof-gcov:
|
|
extends: .native_test_job_template
|
|
needs:
|
|
- job: build-gprof-gcov
|
|
artifacts: true
|
|
variables:
|
|
IMAGE: ubuntu2004
|
|
MAKE_CHECK_ARGS: check
|
|
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
|
|
|
|
# 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-fedora-container
|
|
variables:
|
|
IMAGE: fedora
|
|
CONFIGURE_ARGS:
|
|
--without-default-features
|
|
--disable-capstone
|
|
--disable-pie
|
|
--disable-qom-cast-debug
|
|
--disable-slirp
|
|
--disable-strip
|
|
TARGETS: avr-softmmu i386-softmmu mips64-softmmu s390x-softmmu sh4-softmmu
|
|
sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user
|
|
MAKE_CHECK_ARGS: check-unit check-qtest SPEED=slow
|
|
|
|
build-libvhost-user:
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
|
|
needs:
|
|
job: amd64-fedora-container
|
|
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
|
|
#
|
|
# GitLab publishes from any branch that triggers a CI pipeline
|
|
#
|
|
# For the main repo we don't want to publish from 'staging'
|
|
# since that content may not be pushed, nor do we wish to
|
|
# publish from 'stable-NNN' branches as that content is outdated.
|
|
# Thus we restrict to just the default branch
|
|
#
|
|
# For contributor forks we want to publish from any repo so
|
|
# that users can see the results of their commits, regardless
|
|
# of what topic branch they're currently using
|
|
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
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
when: on_success
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
|
|
when: never
|
|
- if: '$CI_PROJECT_NAMESPACE != "qemu-project"'
|
|
when: on_success
|