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

Barnabás Pőcze barnabas.pocze at ideasonboard.com
Tue Dec 17 16:31:52 CET 2024


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

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
--
2.47.1


More information about the libcamera-devel mailing list