[RFC] ci: Add support for Cirrus-CI service to test FreeBSD.

Patrick Robb probb at iol.unh.edu
Tue Feb 4 18:33:44 CET 2025


On Tue, Feb 4, 2025 at 11:07 AM Aaron Conole <aconole at redhat.com> wrote:

> 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 at 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
>

You might be interested in this thread:
https://bugs.dpdk.org/show_bug.cgi?id=761

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 at redhat.com>
>  M: Michael Santana <maicolgabriel at hotmail.com>
>  F: .github/workflows/build.yml
>  F: .ci/
> +F: .cirrus.yml
>
>  Driver information
>  M: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> --
> 2.47.1
>
>
Looks like it makes sense overall, thanks.

Reviewed-by: Patrick Robb <probb at iol.unh.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/dev/attachments/20250204/a4659c27/attachment-0001.htm>


More information about the dev mailing list