Ilya Maximets <[email protected]> writes:

> 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 <[email protected]>
> ---
>
> 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.

Awesome find.  Thanks, Ilya!

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

I'm not married to technology for a reason :)  If it seems better, then
it is worth checking out.  I can play around with it a little bit, but
I'll be AFK until Jan, so it might be better for someone else who has
the recent time to take a look.

One thing I really find painful with Travis is the difficulty running
the alternate test suites (make check-*).  Travis can run them, but we
need to request privileged containers, and that will add to the build
time.  Not sure if there's some kind of custom privilege support from
Cirrus that would let us run the alternate test suites - or even let us
run them by requesting privileges.

Another thing I'm not sure about is the polling.  At least Travis does
have a RESTful API that we can poll with.  I hope the CirrusCI system
would as well.  Currently, I am looking into getting the robot to poll
the Travis system and respond to a series if there is a problem.

> 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 \
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to