[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