# Currently we have two build stages after our containers are built:
#  - build (for traditional build and test or first stage build)
#  - test (for test stages, using build artefacts from a build stage)
stages:
  - containers
  - containers-layer2
  - build
  - test

include:
  - local: '/.gitlab-ci.d/edk2.yml'
  - local: '/.gitlab-ci.d/opensbi.yml'
  - local: '/.gitlab-ci.d/containers.yml'
  - local: '/.gitlab-ci.d/crossbuilds.yml'

.native_build_job_template: &native_build_job_definition
  stage: build
  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
  before_script:
    - JOBS=$(expr $(nproc) + 1)
  script:
    - mkdir build
    - cd build
    - if test -n "$TARGETS";
      then
        ../configure --enable-werror $CONFIGURE_ARGS --target-list="$TARGETS" ;
      else
        ../configure --enable-werror $CONFIGURE_ARGS ;
      fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
    - make -j"$JOBS"
    - if test -n "$MAKE_CHECK_ARGS";
      then
        make -j"$JOBS" $MAKE_CHECK_ARGS ;
      fi

.native_test_job_template: &native_test_job_definition
  stage: test
  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
  script:
    - scripts/git-submodule.sh update
        $(grep GIT_SUBMODULES build/config-host.mak | sed 's/GIT_SUBMODULES=//')
    - cd build
    - find . -type f -exec touch {} +
    # Avoid recompiling by hiding ninja with NINJA=":"
    - make NINJA=":" $MAKE_CHECK_ARGS

.acceptance_template: &acceptance_definition
  cache:
    key: "${CI_JOB_NAME}-cache"
    paths:
      - ${CI_PROJECT_DIR}/avocado-cache
    policy: pull-push
  artifacts:
    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
    when: always
    expire_in: 2 days
    paths:
      - build/tests/results/latest/results.xml
      - build/tests/results/latest/test-results
    reports:
      junit: build/tests/results/latest/results.xml
  before_script:
    - mkdir -p ~/.config/avocado
    - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
    - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
           >> ~/.config/avocado/avocado.conf
    - echo -e '[job.output.testlogs]\nstatuses = ["FAIL"]'
           >> ~/.config/avocado/avocado.conf
    - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
        du -chs ${CI_PROJECT_DIR}/avocado-cache ;
      fi
    - export AVOCADO_ALLOW_UNTRUSTED_CODE=1
  after_script:
    - cd build
    - du -chs ${CI_PROJECT_DIR}/avocado-cache

build-system-alpine:
  <<: *native_build_job_definition
  variables:
    IMAGE: alpine
    TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
      moxie-softmmu microblazeel-softmmu mips64el-softmmu
    MAKE_CHECK_ARGS: check-build
    CONFIGURE_ARGS: --enable-docs
  artifacts:
    expire_in: 2 days
    paths:
      - .git-submodule-status
      - build

check-system-alpine:
  <<: *native_test_job_definition
  needs:
    - job: build-system-alpine
      artifacts: true
  variables:
    IMAGE: alpine
    MAKE_CHECK_ARGS: check

acceptance-system-alpine:
  <<: *native_test_job_definition
  needs:
    - job: build-system-alpine
      artifacts: true
  variables:
    IMAGE: alpine
    MAKE_CHECK_ARGS: check-acceptance
  <<: *acceptance_definition

build-system-ubuntu:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
    TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
      moxie-softmmu microblazeel-softmmu mips64el-softmmu
    MAKE_CHECK_ARGS: check-build
  artifacts:
    expire_in: 2 days
    paths:
      - build

check-system-ubuntu:
  <<: *native_test_job_definition
  needs:
    - job: build-system-ubuntu
      artifacts: true
  variables:
    IMAGE: ubuntu2004
    MAKE_CHECK_ARGS: check

acceptance-system-ubuntu:
  <<: *native_test_job_definition
  needs:
    - job: build-system-ubuntu
      artifacts: true
  variables:
    IMAGE: ubuntu2004
    MAKE_CHECK_ARGS: check-acceptance
  <<: *acceptance_definition

build-system-debian:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-amd64
    CONFIGURE_ARGS: --enable-fdt=system
    TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
      riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
    MAKE_CHECK_ARGS: check-build
  artifacts:
    expire_in: 2 days
    paths:
      - build

check-system-debian:
  <<: *native_test_job_definition
  needs:
    - job: build-system-debian
      artifacts: true
  variables:
    IMAGE: debian-amd64
    MAKE_CHECK_ARGS: check

# No targets are built here, just tools, docs, and unit tests. This
# also feeds into the eventual documentation deployment steps later
build-tools-and-docs-debian:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-amd64
    MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
    CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
  artifacts:
    expire_in: 2 days
    paths:
      - build

acceptance-system-debian:
  <<: *native_test_job_definition
  needs:
    - job: build-system-debian
      artifacts: true
  variables:
    IMAGE: debian-amd64
    MAKE_CHECK_ARGS: check-acceptance
  <<: *acceptance_definition

build-system-fedora:
  <<: *native_build_job_definition
  variables:
    IMAGE: fedora
    CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
             --enable-fdt=system --enable-slirp=system --enable-capstone=system
    TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
      xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
    MAKE_CHECK_ARGS: check-build
  artifacts:
    expire_in: 2 days
    paths:
      - build

check-system-fedora:
  <<: *native_test_job_definition
  needs:
    - job: build-system-fedora
      artifacts: true
  variables:
    IMAGE: fedora
    MAKE_CHECK_ARGS: check

acceptance-system-fedora:
  <<: *native_test_job_definition
  needs:
    - job: build-system-fedora
      artifacts: true
  variables:
    IMAGE: fedora
    MAKE_CHECK_ARGS: check-acceptance
  <<: *acceptance_definition

build-system-centos:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos8
    CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
                    --enable-modules
    TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
      x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
    MAKE_CHECK_ARGS: check-build
  artifacts:
    expire_in: 2 days
    paths:
      - build

check-system-centos:
  <<: *native_test_job_definition
  needs:
    - job: build-system-centos
      artifacts: true
  variables:
    IMAGE: centos8
    MAKE_CHECK_ARGS: check

acceptance-system-centos:
  <<: *native_test_job_definition
  needs:
    - job: build-system-centos
      artifacts: true
  variables:
    IMAGE: centos8
    MAKE_CHECK_ARGS: check-acceptance
  <<: *acceptance_definition

build-system-opensuse:
  <<: *native_build_job_definition
  variables:
    IMAGE: opensuse-leap
    CONFIGURE_ARGS: --enable-fdt=system
    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
    MAKE_CHECK_ARGS: check-build
  artifacts:
    expire_in: 2 days
    paths:
      - build

check-system-opensuse:
  <<: *native_test_job_definition
  needs:
    - job: build-system-opensuse
      artifacts: true
  variables:
    IMAGE: opensuse-leap
    MAKE_CHECK_ARGS: check

acceptance-system-opensuse:
   <<: *native_test_job_definition
   needs:
     - job: build-system-opensuse
       artifacts: true
   variables:
     IMAGE: opensuse-leap
     MAKE_CHECK_ARGS: check-acceptance
   <<: *acceptance_definition


build-disabled:
  <<: *native_build_job_definition
  variables:
    IMAGE: fedora
    CONFIGURE_ARGS:
      --disable-attr
      --disable-auth-pam
      --disable-avx2
      --disable-bochs
      --disable-brlapi
      --disable-bzip2
      --disable-cap-ng
      --disable-capstone
      --disable-cloop
      --disable-coroutine-pool
      --disable-curl
      --disable-curses
      --disable-dmg
      --disable-docs
      --disable-gcrypt
      --disable-glusterfs
      --disable-gnutls
      --disable-gtk
      --disable-guest-agent
      --disable-iconv
      --disable-keyring
      --disable-kvm
      --disable-libiscsi
      --disable-libpmem
      --disable-libssh
      --disable-libudev
      --disable-libusb
      --disable-libxml2
      --disable-linux-aio
      --disable-live-block-migration
      --disable-lzo
      --disable-malloc-trim
      --disable-mpath
      --disable-nettle
      --disable-numa
      --disable-opengl
      --disable-parallels
      --disable-pie
      --disable-qcow1
      --disable-qed
      --disable-qom-cast-debug
      --disable-rbd
      --disable-rdma
      --disable-replication
      --disable-sdl
      --disable-seccomp
      --disable-sheepdog
      --disable-slirp
      --disable-smartcard
      --disable-snappy
      --disable-sparse
      --disable-spice
      --disable-strip
      --disable-tpm
      --disable-usb-redir
      --disable-vdi
      --disable-vhost-crypto
      --disable-vhost-net
      --disable-vhost-scsi
      --disable-vhost-user
      --disable-vhost-vdpa
      --disable-vhost-vsock
      --disable-virglrenderer
      --disable-vnc
      --disable-vte
      --disable-vvfat
      --disable-xen
      --disable-zstd
    TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu
      s390x-softmmu i386-linux-user
    MAKE_CHECK_ARGS: check-qtest SPEED=slow

# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
# the configure script. The container doesn't contain Xen headers so
# Xen accelerator is not detected / selected. As result it build the
# i386-softmmu and x86_64-softmmu with KVM being the single accelerator
# available.
build-tcg-disabled:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos8
  script:
    - mkdir build
    - cd build
    - ../configure --disable-tcg --audio-drv-list="" || { cat config.log meson-logs/meson-log.txt && exit 1; }
    - make -j"$JOBS"
    - make check-unit
    - make check-qapi-schema
    - cd tests/qemu-iotests/
    - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
            052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
            170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
    - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
            124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
            208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
            260 261 262 263 264 270 272 273 277 279

build-user:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-tools --disable-system
    MAKE_CHECK_ARGS: check-tcg

build-user-static:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-tools --disable-system --static
    MAKE_CHECK_ARGS: check-tcg

# Only build the softmmu targets we have check-tcg tests for
build-some-softmmu:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-tools --enable-debug
    TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
    MAKE_CHECK_ARGS: check-tcg

# Run check-tcg against linux-user (with plugins)
# we skip sparc64-linux-user until it has been fixed somewhat
# we skip cris-linux-user as it doesn't use the common run loop
build-user-plugins:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
    MAKE_CHECK_ARGS: check-tcg
  timeout: 1h 30m

build-user-centos7:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos7
    CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
    MAKE_CHECK_ARGS: check-tcg

build-some-softmmu-plugins:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
    TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
    MAKE_CHECK_ARGS: check-tcg

clang-system:
  <<: *native_build_job_definition
  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:
  <<: *native_build_job_definition
  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

tsan-build:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 --disable-docs
                    --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:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-all-test-cross
    CONFIGURE_ARGS: --disable-docs --disable-tools
    MAKE_CHECK_ARGS: build-tcg
    TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
      unicore32-softmmu
  artifacts:
    expire_in: 2 days
    paths:
      - build

# We split the check-tcg step as test failures are expected but we still
# want to catch the build breaking.
check-deprecated:
  <<: *native_test_job_definition
  needs:
    - job: build-deprecated
      artifacts: true
  variables:
    IMAGE: debian-all-test-cross
    MAKE_CHECK_ARGS: check-tcg
  allow_failure: true

# gprof/gcov are GCC features
gprof-gcov:
  <<: *native_build_job_definition
  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:
  <<: *native_build_job_definition
  variables:
    IMAGE: fedora
  script:
    - mkdir build-oss-fuzz
    - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
      ./scripts/oss-fuzz/build.sh
    - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
    - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
                      | grep -v slirp); do
        grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
        echo Testing ${fuzzer} ... ;
        "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
      done
    # Unrelated to fuzzer: run some tests with -fsanitize=address
    - cd build-oss-fuzz && make check-qtest-i386 check-unit

build-tci:
  <<: *native_build_job_definition
  variables:
    IMAGE: fedora
  script:
    - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
    - mkdir build
    - cd build
    - ../configure --enable-tcg-interpreter
        --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
    - make -j"$JOBS"
    - make run-tcg-tests-x86_64-softmmu
    - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
    - for tg in $TARGETS ; do
        export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
        ./tests/qtest/boot-serial-test || exit 1 ;
        ./tests/qtest/cdrom-test || exit 1 ;
      done
    - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
    - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow

# Alternate coroutines implementations are only really of interest to KVM users
# However we can't test against KVM on Gitlab-CI so we can only run unit tests
build-coroutine-ucontext:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
    MAKE_CHECK_ARGS: check-unit

build-coroutine-sigaltstack:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
    MAKE_CHECK_ARGS: check-unit

# Most jobs test latest gcrypt or nettle builds
#
# These jobs test old gcrypt and nettle from RHEL7
# which had some API differences.
build-crypto-old-nettle:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos7
    TARGETS: x86_64-softmmu x86_64-linux-user
    CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
    MAKE_CHECK_ARGS: check-build
  artifacts:
    paths:
      - build

check-crypto-old-nettle:
  <<: *native_test_job_definition
  needs:
    - job: build-crypto-old-nettle
      artifacts: true
  variables:
    IMAGE: centos7
    MAKE_CHECK_ARGS: check


build-crypto-old-gcrypt:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos7
    TARGETS: x86_64-softmmu x86_64-linux-user
    CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
    MAKE_CHECK_ARGS: check-build
  artifacts:
    paths:
      - build

check-crypto-old-gcrypt:
  <<: *native_test_job_definition
  needs:
    - job: build-crypto-old-gcrypt
      artifacts: true
  variables:
    IMAGE: centos7
    MAKE_CHECK_ARGS: check


build-crypto-only-gnutls:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos7
    TARGETS: x86_64-softmmu x86_64-linux-user
    CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
    MAKE_CHECK_ARGS: check-build
  artifacts:
    paths:
      - build

check-crypto-only-gnutls:
  <<: *native_test_job_definition
  needs:
    - job: build-crypto-only-gnutls
      artifacts: true
  variables:
    IMAGE: centos7
    MAKE_CHECK_ARGS: check

# We don't need to exercise every backend with every front-end
build-trace-multi-user:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system

build-trace-ftrace-system:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu

build-trace-ust-system:
  <<: *native_build_job_definition
  variables:
    IMAGE: ubuntu2004
    CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu

# Check our reduced build configurations
build-without-default-devices:
  <<: *native_build_job_definition
  variables:
    IMAGE: centos8
    CONFIGURE_ARGS: --without-default-devices --disable-user

build-without-default-features:
  <<: *native_build_job_definition
  variables:
    IMAGE: debian-amd64
    CONFIGURE_ARGS: --without-default-features --disable-user
        --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
    MAKE_CHECK_ARGS: check-unit

check-patch:
  stage: build
  image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
  script: .gitlab-ci.d/check-patch.py
  except:
    variables:
      - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
  variables:
    GIT_DEPTH: 1000
  allow_failure: true

check-dco:
  stage: build
  image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
  script: .gitlab-ci.d/check-dco.py
  except:
    variables:
      - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
  variables:
    GIT_DEPTH: 1000

build-libvhost-user:
  stage: build
  image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
  before_script:
    - dnf install -y meson ninja-build
  script:
    - mkdir subprojects/libvhost-user/build
    - cd subprojects/libvhost-user/build
    - meson
    - ninja

# Prepare for GitLab pages deployment. Anything copied into the
# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
pages:
  image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
  stage: test
  needs:
    - job: build-tools-and-docs-debian
  script:
    - mkdir -p public
    # HTML-ised source tree
    - make gtags
    - htags -anT --tree-view=filetree -m qemu_init
        -t "Welcome to the QEMU sourcecode"
    - mv HTML public/src
    # Project documentation
    - make -C build install DESTDIR=$(pwd)/temp-install
    - mv temp-install/usr/local/share/doc/qemu/* public/
  artifacts:
    paths:
      - public
