[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 11/16] gitlab-ci: Add cirrus-ci based tests for NetBSD and OpenBSD
From: |
Thomas Huth |
Subject: |
[PULL 11/16] gitlab-ci: Add cirrus-ci based tests for NetBSD and OpenBSD |
Date: |
Wed, 15 Dec 2021 08:33:57 +0100 |
Cirrus-CI provides KVM in their Linux containers, so we can also run
our VM-based NetBSD and OpenBSD build jobs there.
Since the VM installation might take a while, we only run the "help"
target on the first invocation to avoid timeouts, and then only check
the build during the next run, once the base image has been cached.
For the the build tests, we also only use very a limited set of target
CPUs since compiling in these VMs is not very fast (especially the
build on OpenBSD seems to be incredibly slow).
The jobs are marked as "manual" only, since this double-indirect setup
(with the cirrus-run script and VMs in the Cirrus-CI containers) might
fail more often than the other jobs, and since we can trigger a limited
amount of Cirrus-CI jobs at a time anyway (due to the restrictions in
the free tier of Cirrus). Thus these jobs are rather added as convenience
for contributors who would like to run the NetBSD/OpenBSD tests without
the need of downloading and installing the corresponding VM images on
their local machines.
Message-Id: <20211209103124.121942-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
.gitlab-ci.d/cirrus.yml | 35 +++++++++++++++++++++++++++++++
.gitlab-ci.d/cirrus/kvm-build.yml | 31 +++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
create mode 100644 .gitlab-ci.d/cirrus/kvm-build.yml
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index d273a9e713..19e6c21401 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -89,3 +89,38 @@ x64-macos-11-base-build:
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin
PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat
check-qtest-x86_64
+
+
+# The following jobs run VM-based tests via KVM on a Linux-based Cirrus-CI job
+.cirrus_kvm_job:
+ stage: build
+ image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
+ needs: []
+ timeout: 80m
+ allow_failure: true
+ script:
+ - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
+ -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
+ -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
+ -e "s|[@]NAME@|$NAME|g"
+ -e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g"
+ -e "s|[@]TEST_TARGETS@|$TEST_TARGETS|g"
+ <.gitlab-ci.d/cirrus/kvm-build.yml >.gitlab-ci.d/cirrus/$NAME.yml
+ - cat .gitlab-ci.d/cirrus/$NAME.yml
+ - cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
+ rules:
+ - when: manual
+
+x86-netbsd:
+ extends: .cirrus_kvm_job
+ variables:
+ NAME: netbsd
+ CONFIGURE_ARGS: --target-list=x86_64-softmmu,ppc64-softmmu,aarch64-softmmu
+ TEST_TARGETS: check
+
+x86-openbsd:
+ extends: .cirrus_kvm_job
+ variables:
+ NAME: openbsd
+ CONFIGURE_ARGS: --target-list=i386-softmmu,riscv64-softmmu,mips64-softmmu
+ TEST_TARGETS: check
diff --git a/.gitlab-ci.d/cirrus/kvm-build.yml
b/.gitlab-ci.d/cirrus/kvm-build.yml
new file mode 100644
index 0000000000..4334fabf39
--- /dev/null
+++ b/.gitlab-ci.d/cirrus/kvm-build.yml
@@ -0,0 +1,31 @@
+container:
+ image: fedora:35
+ cpu: 4
+ memory: 8Gb
+ kvm: true
+
+env:
+ CIRRUS_CLONE_DEPTH: 1
+ CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@"
+ CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@"
+ CI_COMMIT_SHA: "@CI_COMMIT_SHA@"
+
+@NAME@_task:
+ @NAME@_vm_cache:
+ folder: $HOME/.cache/qemu-vm
+ install_script:
+ - dnf update -y
+ - dnf install -y git make openssh-clients qemu-img qemu-system-x86 wget
+ clone_script:
+ - git clone --depth 100 "$CI_REPOSITORY_URL" .
+ - git fetch origin "$CI_COMMIT_REF_NAME"
+ - git reset --hard "$CI_COMMIT_SHA"
+ build_script:
+ - if [ -f $HOME/.cache/qemu-vm/images/@NAME@.img ]; then
+ make vm-build-@NAME@ J=$(getconf _NPROCESSORS_ONLN)
+ EXTRA_CONFIGURE_OPTS="@CONFIGURE_ARGS@"
+ BUILD_TARGET="@TEST_TARGETS@" ;
+ else
+ make vm-build-@NAME@ J=$(getconf _NPROCESSORS_ONLN) BUILD_TARGET=help
+ EXTRA_CONFIGURE_OPTS="--disable-system --disable-user
--disable-tools" ;
+ fi
--
2.27.0
- [PULL 03/16] tests/libqtest: add some virtio-net failover migration cancelling tests, (continued)
- [PULL 03/16] tests/libqtest: add some virtio-net failover migration cancelling tests, Thomas Huth, 2021/12/15
- [PULL 05/16] tests/qtest: Run the PPC 32-bit tests with the 64-bit target binary, too, Thomas Huth, 2021/12/15
- [PULL 02/16] tests/qtest: add some tests for virtio-net failover, Thomas Huth, 2021/12/15
- [PULL 01/16] qtest/libqos: add a function to initialize secondary PCI buses, Thomas Huth, 2021/12/15
- [PULL 04/16] tests/libqtest: add a migration test with two couples of failover devices, Thomas Huth, 2021/12/15
- [PULL 06/16] tests/qtest: Fence the tests that need xlnx-zcu102 with CONFIG_XLNX_ZYNQMP_ARM, Thomas Huth, 2021/12/15
- [PULL 07/16] tests/qtest: Add a function that gets a list with available machine types, Thomas Huth, 2021/12/15
- [PULL 10/16] gitlab-ci.d/buildtest: Add jobs that run the device-crash-test, Thomas Huth, 2021/12/15
- [PULL 09/16] Move the libssh setup from configure to meson.build, Thomas Huth, 2021/12/15
- [PULL 08/16] tests/qtest: Add a function to check whether a machine is available, Thomas Huth, 2021/12/15
- [PULL 11/16] gitlab-ci: Add cirrus-ci based tests for NetBSD and OpenBSD,
Thomas Huth <=
- [PULL 13/16] virtio-iommu: Fix endianness in get_config, Thomas Huth, 2021/12/15
- [PULL 12/16] virtio-iommu: Remove set_config callback, Thomas Huth, 2021/12/15
- [PULL 14/16] virtio-iommu: Fix the domain_range end, Thomas Huth, 2021/12/15
- [PULL 15/16] tests: qtest: Add virtio-iommu test, Thomas Huth, 2021/12/15
- [PULL 16/16] gitlab-ci: Test compilation on Windows with MSYS2, Thomas Huth, 2021/12/15
- Re: [PULL 00/16] qtest and gitlab-CI improvements, Richard Henderson, 2021/12/15
- Re: [PULL 00/16] qtest and gitlab-CI improvements, Philippe Mathieu-Daudé, 2021/12/18