This adds a new custom runner, showing an example of how other entities can add their own custom jobs to the GitLab CI pipeline.
The runner (the machine and job) is to be managed by Red Hat, and adds, at the very least, bare metal x86_64 KVM testing capabilities to the QEMU pipeline. This brings extra coverage for some unittests, and the ability to run the Avocado tests that depend on KVM. The runner is already completely set up and registered to the https://gitlab.com/qemu-project/qemu project instance. Jobs will be triggered according to the same rules for the jobs s390x and aarch64 jobs running on QEMU project's custom runners, that is, pushes to the staging branch of the "qemu-project" project, or by setting a specific variable. Still, the job is set with mode "allow failures", so it should not disrupt the existing pipeline. Once its reliability is proved (rules and service levels are to be determined), it can be "upgraded" to a "gating" condition. Even though the formal method of tracking machine/job maintainers have not been formalized, it should be known that the contacts/admins for this machine and job are: - Willian Rampazzo <willi...@redhat.com> willianr on #qemu - Cleber Rosa <cr...@redhat.com> clebergnu on #qemu One example of a job introduced here, running on the host reserved for this purpose can be seen at: - https://gitlab.com/cleber.gnu/qemu/-/jobs/1773761640 Changes from v1[1]: * Replaced "--disable-fdt" for "--enable-fdt", given that according to "TARGET_NEED_FDT=y" in "configs/targets/x86_64-softmmu.mak" it is required for x86_64-softmmu. * Added libfdt-devel to list of package requirements (see previous point for reasoning). * Removed patch 1 that contained a duplicate bug fix. * Removed patches 2 and 3 that implemented a "feature probe" and "feature requirement" that would cancel tests if features were not present. That will be treated in a different patch series. * Removed --disable-jemalloc and --disabletcmalloc according to 3b4da1329. * Introduced "test-avocado" script with a list of vetted tests * Do not install meson from CentOS Stream 8 PowerTools repo, instead meson from git submodule due to minimum version requirements. * Sync with commit f68d21ab8eac56c4097a3d63a8c86689bb507911 (HEAD of c8s-stream-rhel branch) from CentOS repo at https://git.centos.org/rpms/qemu-kvm/. * Further separated distribution version and architecture specific files into separate sub directories. * Added a gitlab CI rule and variable to allow other repos/users who have a CentOS Stream 8 x86_64 runner to trigger the job. [1] https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg02066.html Cleber Rosa (1): Jobs based on custom runners: add CentOS Stream 8 .gitlab-ci.d/custom-runners.yml | 29 +++ docs/devel/ci-jobs.rst.inc | 7 + .../org.centos/stream/8/build-environment.yml | 51 +++++ .../ci/org.centos/stream/8/x86_64/configure | 208 ++++++++++++++++++ .../org.centos/stream/8/x86_64/test-avocado | 70 ++++++ scripts/ci/org.centos/stream/README | 17 ++ scripts/ci/setup/build-environment.yml | 38 ++++ 7 files changed, 420 insertions(+) create mode 100644 scripts/ci/org.centos/stream/8/build-environment.yml create mode 100755 scripts/ci/org.centos/stream/8/x86_64/configure create mode 100755 scripts/ci/org.centos/stream/8/x86_64/test-avocado create mode 100644 scripts/ci/org.centos/stream/README -- 2.33.1