[libcamera-ci] [RFC PATCH v2 3/4] Add `build-package:debug` job

Barnabás Pőcze barnabas.pocze at ideasonboard.com
Tue Dec 17 13:50:07 CET 2024


2024. 12. 17. 12:58 keltezéssel, Laurent Pinchart írta:
> On Tue, Dec 17, 2024 at 11:40:13AM +0100, Barnabás Pőcze wrote:
>> 2024. 12. 17. 1:06 keltezéssel, Laurent Pinchart írta:
>>> Hi Barnabás,
>>>
>>> Thank you for the patch.
>>>
>>> On Mon, Dec 16, 2024 at 06:28:26PM +0100, Barnabás Pőcze wrote:
>>>> Add a new job named `build-package:debug`, whose purpose is to create
>>>> a build of libcamera with debugging additions (ASAN, UBSAN, STL checks),
>>>> and then to publish the resulting package as an artifact for other
>>>> jobs to use.
>>>>
>>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
>>>> ---
>>>>    gitlab-ci.yml | 33 +++++++++++++++++++++++++++++++++
>>>>    1 file changed, 33 insertions(+)
>>>>
>>>> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
>>>> index f679d6e..0a3eab3 100644
>>>> --- a/gitlab-ci.yml
>>>> +++ b/gitlab-ci.yml
>>>> @@ -305,6 +305,39 @@ build-package:cros:
>>>>        reports:
>>>>          dotenv: env
>>>>
>>>> +build-package:debug:
>>>> +  extends:
>>>> +    - .fdo.distribution-image at debian
>>>> +    - .libcamera-ci.debian:12
>>>> +    - .libcamera-ci.scripts
>>>> +  stage: build
>>>> +  needs:
>>>> +    - job: container-debian:12
>>>> +      artifacts: false
>>>> +  script:
>>>> +    - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh
>>>> +    - $CI_PROJECT_DIR/.gitlab-ci/package-libcamera.sh
>>>> +  artifacts:
>>>> +    name: libcamera-debug-${ARCH}-${CI_COMMIT_SHA}
>>>> +    when: always
>>>> +    expire_in: 1 week
>>>> +    paths:
>>>> +      - build/meson-logs/
>>>> +      - libcamera-${CI_COMMIT_SHA}.tar.xz
>>>> +  variables:
>>>> +    BUILD_TYPE: debug
>>>> +    MESON_OPTIONS: >-
>>>> +      -D auto_features=disabled
>>>> +      -D test=false
>>>> +      -D v4l2=false
>>>> +      -D b_sanitize=address,undefined
>>>> +      -D cpp_debugstl=true
>>>> +      -D pipelines=[]
>>>
>>> Any reason not to enable lc-compliance and the virtual pipeline handler
>>> here already (essentially moving the change of options from patch 4/4 to
>>> this one) ?
>>
>> No particular reason apart from just thinking that those changes
>> belong to the next patch.
>>
>>> I would also like to unify this with build-package:arm64, as it's very
>>> similar. You can add arm64 to the matrix below, and set arch-specific
>>> meson options when they need to differ. After possibly updating
>>> meson.build in libcamera to support "-D pipelines=['auto', 'virtual']",
>>> I think you could simply set pipelines to 'auto' on all architectures.
>>
>> The motivation for not unifying the two was that build-package:arm64
>> does not compile with the same debug instrumentation.
> 
> As both packages are meant to run test on devices (with lc-compliance
> being the main test), shouldn't we unify the debug instrumentation ? Or
> are there reasons to keep them different between arm64 and amd64 ? The
> amd64 package needs to run in a VM on a gitlab runner so that could make
> it a bit special, but it would be nice to make it suitable to run on
> real hardware too, to test the ipu3 or simple (for IPU6) pipeline
> handlers.

I think it is definitely possible to unify them.


> 
>>>> +  parallel:
>>>> +    matrix:
>>>> +      - ARCH: amd64
>>>> +
>>>> +
>>>>    # ------------------------------------------------------------------------------
>>>>    # Lint stage - Run checkstyle.py and check merge suitability
>>>>    # ------------------------------------------------------------------------------
> 



More information about the libcamera-devel mailing list