CirrusCI [1] is free for open-sorce projects and provides similar
to TravisCI interfaces. One significant difference is ability
to run tasks on FreeBSD instances.

This patch adds simple configuration file to test OVS build
on two FreeBSD releases with gcc and clang.
Unit tests are commented out because they are broken for now.

To enable the automated checks Cirrus CI application from GitHub
Marketplace should be installed. See details in Quick Start guide [2].

[1] https://cirrus-ci.org
[2] https://cirrus-ci.org/guide/quick-start/

Signed-off-by: Ilya Maximets <i.maxim...@samsung.com>
---

This could be useful to test FreeBSD build automatically to early
detect issues. CirrusCI looks suitable for that purpose and it's
the only public CI system that I managed to find that supports
FreeBSD images. Sending as RFC to start discussion.

Few more differentiation points with Travis. Cirrus allows to
configure number of CPUs and the amount of required memory. It
also supports Linux, OSX and Windows containers. So, maybe, if
we'll like it, we could drop Travis and AppVeyor and use single
CI system for all the tests.

I'm not advertising and not trying to convince to replace our
current CI systems. I found CirrusCI just few days ago by a mail [3]
in qemu-devel list. I just think that it's the only option for
now to test BSD builds with public CI. And it worked fine for me
with below configuration.

Thoughts ?

As a note: I just spotted that TravisCI adds windows support.
Maybe we could use it in the future for windows builds.

[3] https://lists.nongnu.org/archive/html/qemu-devel/2018-12/msg00935.html

 .cirrus.yml | 30 ++++++++++++++++++++++++++++++
 Makefile.am |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 .cirrus.yml

diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644
index 000000000..4902fd370
--- /dev/null
+++ b/.cirrus.yml
@@ -0,0 +1,30 @@
+freebsd_build_task:
+
+  freebsd_instance:
+    matrix:
+      image: freebsd-12-0-release-amd64
+      image: freebsd-11-2-release-amd64
+    cpu: 4
+    memory: 8G
+
+  env:
+    matrix:
+      COMPILER: gcc
+      COMPILER: clang
+
+  prepare_script:
+    - pkg install -y automake libtool gmake gcc wget
+                     python py27-six py27-sphinx
+
+  configure_script:
+    - ./boot.sh
+    - ./configure CC=$COMPILER MAKE=gmake OVS_CFLAGS='-Wall' --enable-Werror
+                  || { cat config.log; exit 1; }
+
+  build_script:
+    - gmake -j8
+
+#  TODO(i.maximets): Uncomment the test suite execution when it is fixed.
+#  check_script:
+#    - gmake -j8 check TESTSUITEFLAGS=-j8 RECHECK=yes
+#                || { cat ./tests/testsuite.log; exit 1; }
diff --git a/Makefile.am b/Makefile.am
index 64725654c..8408509c9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -76,6 +76,7 @@ EXTRA_DIST = \
        MAINTAINERS.rst \
        README.rst \
        NOTICE \
+       .cirrus.yml \
        .travis.yml \
        .travis/linux-build.sh \
        .travis/linux-prepare.sh \
-- 
2.17.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to