task:
  name: Vagrant Fedora based test (no VDSO)
  environment:
    HOME: "/root"
    CIRRUS_WORKING_DIR: "/tmp/criu"

  compute_engine_instance:
    image_project: cirrus-images
    image: family/docker-kvm
    platform: linux
    cpu: 4
    memory: 16G
    nested_virtualization: true

  setup_script: |
    scripts/ci/apt-install make gcc pkg-config git perl-modules iproute2 kmod wget cpu-checker
    sudo kvm-ok
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
  build_script: |
    make -C scripts/ci vagrant-fedora-no-vdso

task:
  name: CentOS Stream 9 based test
  environment:
    HOME: "/root"
    CIRRUS_WORKING_DIR: "/tmp/criu"

  compute_engine_instance:
    image_project: centos-cloud
    image: family/centos-stream-9
    platform: linux
    cpu: 4
    memory: 8G

  setup_script: |
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
    dnf config-manager --set-enabled crb # Same as CentOS 8 powertools
    dnf -y install epel-release epel-next-release
    dnf -y install --allowerasing asciidoc gcc git gnutls-devel libaio-devel libasan libcap-devel libnet-devel libnl3-devel libbsd-devel libselinux-devel make protobuf-c-devel protobuf-devel python-devel python-PyYAML python-protobuf python-junit_xml python3-importlib-metadata xmlto libdrm-devel libuuid-devel
    # The image has a too old version of nettle which does not work with gnutls.
    # Just upgrade to the latest to make the error go away.
    dnf -y upgrade nettle nettle-devel
    systemctl stop sssd
    # Even with selinux in permissive mode the selinux tests will be executed.
    # The Cirrus CI user runs as a service from selinux point of view and is
    # much more restricted than a normal shell (system_u:system_r:unconfined_service_t:s0).
    # The test case above (vagrant-fedora-no-vdso) should run selinux tests in enforcing mode.
    setenforce 0

  build_script: |
    make -C scripts/ci local SKIP_CI_PREP=1 CC=gcc CD_TO_TOP=1 ZDTM_OPTS="-x zdtm/static/socket-raw"

task:
  name: Vagrant Fedora Rawhide based test
  environment:
    HOME: "/root"
    CIRRUS_WORKING_DIR: "/tmp/criu"

  compute_engine_instance:
    image_project: cirrus-images
    image: family/docker-kvm
    platform: linux
    cpu: 4
    memory: 16G
    nested_virtualization: true

  setup_script: |
    scripts/ci/apt-install make gcc pkg-config git perl-modules iproute2 kmod wget cpu-checker
    sudo kvm-ok
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
  build_script: |
    make -C scripts/ci vagrant-fedora-rawhide

task:
  name: Vagrant Fedora based test (non-root)
  environment:
    HOME: "/root"
    CIRRUS_WORKING_DIR: "/tmp/criu"

  compute_engine_instance:
    image_project: cirrus-images
    image: family/docker-kvm
    platform: linux
    cpu: 4
    memory: 16G
    nested_virtualization: true

  setup_script: |
    scripts/ci/apt-install make gcc pkg-config git perl-modules iproute2 kmod wget cpu-checker
    sudo kvm-ok
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
  build_script: |
    make -C scripts/ci vagrant-fedora-non-root

task:
  name: aarch64 build GCC (native)
  arm_container:
    image: docker.io/library/ubuntu:jammy
    cpu: 4
    memory: 4G
  script: uname -a
  build_script: |
    scripts/ci/apt-install make
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
    make -C scripts/ci local

task:
  name: aarch64 build CLANG (native)
  arm_container:
    image: docker.io/library/ubuntu:jammy
    cpu: 4
    memory: 4G
  script: uname -a
  build_script: |
    scripts/ci/apt-install make
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
    make -C scripts/ci local CLANG=1

task:
  name: aarch64 Fedora Rawhide
  arm_container:
    image: registry.fedoraproject.org/fedora:rawhide
    cpu: 4
    memory: 4G
  script: uname -a
  build_script: |
    scripts/ci/prepare-for-fedora-rawhide.sh
    ln -sf /usr/include/google/protobuf/descriptor.proto images/google/protobuf/descriptor.proto
    make -C scripts/ci/ local CC=gcc SKIP_CI_PREP=1 SKIP_CI_TEST=1 CD_TO_TOP=1
    make -C test/zdtm -j 4
