Cleber Rosa d7c2e2b3f4 Jobs based on custom runners: add CentOS Stream 8
This introduces three different parts of a job designed to run
on a custom runner managed by Red Hat.  The goals include:

  a) propose a model for other organizations that want to onboard
     their own runners, with their specific platforms, build
     configuration and tests.

  b) bring awareness to the differences between upstream QEMU and the
     version available under CentOS Stream, which is "A preview of
     upcoming Red Hat Enterprise Linux minor and major releases".

  c) because of b), it should be easier to identify and reduce the gap
     between Red Hat's downstream and upstream QEMU.

The components of this custom job are:

  I) OS build environment setup code:

     - additions to the existing "build-environment.yml" playbook
       that can be used to set up CentOS/EL 8 systems.

     - a CentOS Stream 8 specific "build-environment.yml" playbook
       that adds to the generic one.

 II) QEMU build configuration: a script that will produce binaries with
     features as similar as possible to the ones built and packaged on
     CentOS stream 8.

III) Scripts that define the minimum amount of testing that the
     binaries built with the given configuration (point II) under the
     given OS build environment (point I) should be subjected to.

 IV) Job definition: GitLab CI jobs that will dispatch the build/test
     jobs (see points #II and #III) to the machine specifically
     configured according to #I.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Tested-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20211111160501.862396-2-crosa@redhat.com>
Message-Id: <20211115142915.3797652-6-alex.bennee@linaro.org>
2021-11-16 16:19:53 +00:00

71 lines
4.1 KiB
Bash
Executable File

#!/bin/sh -e
#
# Runs a previously vetted list of tests, either marked explicitly for
# KVM and x86_64, or tests that are generic enough to be valid for all
# targets. Such a test list can be generated with:
#
# ./tests/venv/bin/avocado list --filter-by-tags-include-empty \
# --filter-by-tags-include-empty-key -t accel:kvm,arch:x86_64 \
# tests/avocado/
#
# This is almost the complete list of avocado based tests available at
# the time this was compile, with the following exceptions:
#
# * Require machine type "x-remote":
# - tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64
#
# * Needs superuser privileges:
# - tests/avocado/virtiofs_submounts.py:VirtiofsSubmountsTest.test_pre_virtiofsd_set_up
# - tests/avocado/virtiofs_submounts.py:VirtiofsSubmountsTest.test_pre_launch_set_up
# - tests/avocado/virtiofs_submounts.py:VirtiofsSubmountsTest.test_post_launch_set_up
# - tests/avocado/virtiofs_submounts.py:VirtiofsSubmountsTest.test_post_mount_set_up
# - tests/avocado/virtiofs_submounts.py:VirtiofsSubmountsTest.test_two_runs
#
# * Requires display type "egl-headless":
# - tests/avocado/virtio-gpu.py:VirtioGPUx86.test_virtio_vga_virgl
# - tests/avocado/virtio-gpu.py:VirtioGPUx86.test_vhost_user_vga_virgl
#
# * Test is marked (unconditionally) to be skipped:
# - tests/avocado/virtio_check_params.py:VirtioMaxSegSettingsCheck.test_machine_types
#
make get-vm-images
./tests/venv/bin/avocado run \
--job-results-dir=tests/results/ \
tests/avocado/boot_linux.py:BootLinuxX8664.test_pc_i440fx_kvm \
tests/avocado/boot_linux.py:BootLinuxX8664.test_pc_q35_kvm \
tests/avocado/boot_linux_console.py:BootLinuxConsole.test_x86_64_pc \
tests/avocado/cpu_queries.py:QueryCPUModelExpansion.test \
tests/avocado/empty_cpu_model.py:EmptyCPUModel.test \
tests/avocado/hotplug_cpu.py:HotPlugCPU.test \
tests/avocado/info_usernet.py:InfoUsernet.test_hostfwd \
tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu \
tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_pt \
tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_strict \
tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_strict_cm \
tests/avocado/linux_initrd.py:LinuxInitrd.test_with_2gib_file_should_exit_error_msg_with_linux_v3_6 \
tests/avocado/linux_initrd.py:LinuxInitrd.test_with_2gib_file_should_work_with_linux_v4_16 \
tests/avocado/migration.py:Migration.test_migration_with_exec \
tests/avocado/migration.py:Migration.test_migration_with_tcp_localhost \
tests/avocado/migration.py:Migration.test_migration_with_unix \
tests/avocado/pc_cpu_hotplug_props.py:OmittedCPUProps.test_no_die_id \
tests/avocado/replay_kernel.py:ReplayKernelNormal.test_x86_64_pc \
tests/avocado/reverse_debugging.py:ReverseDebugging_X86_64.test_x86_64_pc \
tests/avocado/version.py:Version.test_qmp_human_info_version \
tests/avocado/virtio_version.py:VirtioVersionCheck.test_conventional_devs \
tests/avocado/virtio_version.py:VirtioVersionCheck.test_modern_only_devs \
tests/avocado/vnc.py:Vnc.test_change_password \
tests/avocado/vnc.py:Vnc.test_change_password_requires_a_password \
tests/avocado/vnc.py:Vnc.test_no_vnc \
tests/avocado/vnc.py:Vnc.test_no_vnc_change_password \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_4_0 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_4_1 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_set_4_0 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_unset_4_1 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v1_4_0 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v1_set_4_0 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v2_4_0 \
tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v2_unset_4_1 \
tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_4_0_alias_compatibility \
tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_4_1_alias \
tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_none_alias