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 <aconole@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
Sorry, do you mind explaining why this is needed? And should it be cloning to main or to the latest LTS tag? I think I am ignorant of what is required for your build process.
+
+ configure_script:
+ - ./.ci/freebsd-setup.sh
+
+ build_script:
+ - ./.ci/freebsd-build.sh
+
+ check_script:
+ - meson test -C build --suite fast-tests -t 3
See Cody's comment from last April about unit tests being broken on FreeBSD 13.0 and 14.0. My recollection is that there is no volunteer to resolve these issues currently, which is why we are not targeting unit tests for FreeBSD at the Community Lab - only build tests.
+ || { 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 <aconole@redhat.com>
M: Michael Santana <maicolgabriel@hotmail.com>
F: .github/workflows/build.yml
F: .ci/
+F: .cirrus.yml
Driver information
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
--
2.47.1
Looks like it makes sense overall, thanks.