[libcamera-devel] [PATCH 3/3] ci: gitlab: Provide initial automated testing

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Jan 20 18:16:57 CET 2020


Hi Laurent,

On 20/01/2020 17:08, Laurent Pinchart wrote:
> Hi Kieran,
> 
> Thank you for the patch.
> 
> 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.


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


>> +    - 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
--
Kieran


More information about the libcamera-devel mailing list