This commit adds preliminary support for developer driven FreeBSD testing
via the Cirrus-CI cloud continuous integration system.

NOTE: Currently, this does not successfully execute.  See the following
build result:
  https://cirrus-ci.com/task/5626189961756672

Full Logs:
  https://api.cirrus-ci.com/v1/task/5626189961756672/logs/check.log

The tests themselves may need to be run as root.

Signed-off-by: Aaron Conole <acon...@redhat.com>
---
 .ci/freebsd-build.sh |  5 +++++
 .ci/freebsd-setup.sh |  3 +++
 .cirrus.yml          | 33 +++++++++++++++++++++++++++++++++
 MAINTAINERS          |  1 +
 4 files changed, 42 insertions(+)
 create mode 100755 .ci/freebsd-build.sh
 create mode 100755 .ci/freebsd-setup.sh
 create mode 100644 .cirrus.yml

diff --git a/.ci/freebsd-build.sh b/.ci/freebsd-build.sh
new file mode 100755
index 0000000000..099f9fd448
--- /dev/null
+++ b/.ci/freebsd-build.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd build
+ninja
+meson install
diff --git a/.ci/freebsd-setup.sh b/.ci/freebsd-setup.sh
new file mode 100755
index 0000000000..762a8383c3
--- /dev/null
+++ b/.ci/freebsd-setup.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+meson setup build
diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644
index 0000000000..727dcb14f4
--- /dev/null
+++ b/.cirrus.yml
@@ -0,0 +1,33 @@
+freebsd_build_task:
+
+  freebsd_instance:
+    matrix:
+      image_family: freebsd-15-0-snap
+      image_family: freebsd-14-2-snap
+    cpu: 4
+    memory: 4G
+
+  env:
+    DEPENDENCIES: git gcc wget openssl python3 meson pkgconf
+    PY_DEPS:      pyelftools
+    matrix:
+      COMPILER: gcc
+      COMPILER: clang
+
+  prepare_script:
+    - sysctl -w kern.coredump=0
+    - pkg update -f
+    - pkg install -y ${DEPENDENCIES}
+        $(pkg search -xq "^py3[0-9]+-(${PY_DEPS})-[0-9]+" | xargs)
+    - mkdir -p /usr/src
+    - git clone --depth 1 https://git.freebsd.org/src.git /usr/src
+
+  configure_script:
+    - ./.ci/freebsd-setup.sh
+
+  build_script:
+    - ./.ci/freebsd-build.sh
+
+  check_script:
+    - meson test -C build --suite fast-tests -t 3
+            || { cat ./build/meson-logs/testlog.txt; exit 1; }
diff --git a/MAINTAINERS b/MAINTAINERS
index b86cdd266b..ed1df17f3c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -142,6 +142,7 @@ M: Aaron Conole <acon...@redhat.com>
 M: Michael Santana <maicolgabr...@hotmail.com>
 F: .github/workflows/build.yml
 F: .ci/
+F: .cirrus.yml
 
 Driver information
 M: Dmitry Kozlyuk <dmitry.kozl...@gmail.com>
-- 
2.47.1

Reply via email to