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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Dec 17 16:54:45 CET 2024


Hi Barnabás,

Thank you for the patch.

On Tue, Dec 17, 2024 at 04:31:52PM +0100, Barnabás Pőcze wrote:
> Convert `build-package:arm64` into a `parallel:matrix` job that
> compiles libcamera for amd64 and arm64 with debugging additions
> (ASAN, UBSAN, STL debugging) and then publishes the resulting
> package as an artifact for other jobs to use.
> 
> Note the `force_fallback_for=gtest` option, which is needed because
> the googletest library, a dependency of `lc-compliance`, uses STL
> types in its API, and `cpp_debugstl=true` changes the ABI of these
> types, so it has to be compiled with the same options from source.
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
> 
> Changes in v3:
>   * extend `build-package:arm64` instead of creating a new job
> 
> ---
>  gitlab-ci.yml | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/gitlab-ci.yml b/gitlab-ci.yml
> index f679d6e..205c6ff 100644
> --- a/gitlab-ci.yml
> +++ b/gitlab-ci.yml
> @@ -248,7 +248,7 @@ build-history:
>  # real hardware. Enable only the options needed by the tests.
>  #
> 
> -build-package:arm64:
> +build-package:debug:
>    extends:
>      - .fdo.distribution-image at debian
>      - .libcamera-ci.debian:12
> @@ -261,27 +261,28 @@ build-package:arm64:
>      - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh
>      - $CI_PROJECT_DIR/.gitlab-ci/package-libcamera.sh
>    artifacts:
> -    name: libcamera-arm64-${CI_COMMIT_SHA}
> +    name: libcamera-debug-${ARCH}-${CI_COMMIT_SHA}
>      when: always
>      expire_in: 1 week
>      paths:
>        - build/meson-logs/
>        - libcamera-${CI_COMMIT_SHA}.tar.xz
>    variables:
> -    ARCH: arm64
>      BUILD_TYPE: debug
>      MESON_OPTIONS: >-
> -      -D cam=disabled
> -      -D documentation=disabled
> -      -D gstreamer=disabled
> -      -D lc-compliance=enabled
> +      -D b_sanitize=address,undefined
> +      -D cpp_debugstl=true
> +      -D force_fallback_for=['gtest']
>        -D pipelines=['auto']
> -      -D pycamera=disabled
> -      -D qcam=disabled
> +      -D auto_features=disabled
> +      -D lc-compliance=enabled
>        -D test=false
>        -D tracing=enabled
> -      -D udev=disabled
>        -D v4l2=false
> +  parallel:
> +    matrix:
> +      - ARCH: amd64
> +      - ARCH: arm64
> 
>  #
>  # Build and package libcamera for Chrome OS, for the purpose of running tests

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list