[libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial automated testing
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Jan 20 18:21:30 CET 2020
Hi Kieran,
On Mon, Jan 20, 2020 at 05:16:57PM +0000, Kieran Bingham wrote:
> On 20/01/2020 17:08, Laurent Pinchart wrote:
> > On Mon, Jan 20, 2020 at 12:55:44PM +0000, Kieran Bingham wrote:
> >> Integrate compile testing and the ninja test framework.
> >> Any unit tests registered with the Meson Build system will automatically
> >> be run with 'ninja test'.
> >
> > I'm not sure when you mean here. The script below doesn't run tests,
> > does it ?
>
> Argh, an earlier version of this file did :-)
>
> >> Documentation will be built, and the resulting package will be installed
> >> to 'libcamera/package'
> >>
> >> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >>
> >> ---
> >> v2:
> >> - CI: Add Documentation to build artifacts
> >> - CI: Convert to alpine image
> >> - CI: test install phase
> >> ---
> >> .gitlab-ci.yml | 18 ++++++++++++++++++
> >> 1 file changed, 18 insertions(+)
> >> create mode 100644 .gitlab-ci.yml
> >>
> >> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> >> new file mode 100644
> >> index 000000000000..5851af90e22c
> >> --- /dev/null
> >> +++ b/.gitlab-ci.yml
> >> @@ -0,0 +1,18 @@
> >> +image: alpine:edge
> >
> > Any specific reason for this choice ? I suppose it's fine to start with,
> > and we can then extend to more distributions.
>
> I chose it (a year ago?) to extend coverage for c-libraries. I (we?)
> usually build on a glibc target. The alpine image uses Musl. It's also a
> smaller image suitable for containers, so it speeds up the build.
>
> I want the build to extend to multiple distributions, and multiple
> toolchains. The pushback I received last time I looked at this stopped
> me from continuing this path of development/investigation.
>
> Hopefully we can continue to get some extended build coverage.
>
> >> +
> >> +build:
> >> + stage: build
> >> + before_script:
> >> + - apk add --no-cache gcc g++ musl-dev meson py3-yaml py3-sphinx linux-headers pkgconfig eudev eudev-dev
> >
> > Should we also depend on Qt to test compilation of qcam ?
>
> Yes, we should also build qcam.
>
> I expect this script was created before we had qcam, and I've only
> half-maintained it to keep it building what was there.
>
> > Is there an easy way to also test compilation with clang ?
>
> That comes under the category of multiple build matrix support.
OK.
> >> + script:
> >> + - mkdir libcamera && cd libcamera && meson .. && ninja
> >
> > How about enabling the android and V4L2 compatibility layers ?
>
> Yes, they would be useful too.
> Are there external requirements to build the android layer?
No, it's self-contained.
> >> + - ninja Documentation/linkcheck
> >> + - DESTDIR=$PWD/package ninja install
> >> + artifacts:
> >> + expire_in: 6 hrs
> >> + paths:
> >> + - libcamera/Documentation/*
> >> + - libcamera/src/libcamera/libcamera.so
> >> + - libcamera/test/test_init
>
> test/test_init looks like an old artefact that should be removed too.
>
> >> + - libcamera/meson-logs/testlog.txt
> >> + - libcamera/package/*
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list