From patchwork Tue Dec 17 15:31:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= X-Patchwork-Id: 22382 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E4FEAC32F6 for ; Tue, 17 Dec 2024 15:32:03 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3296367FDB; Tue, 17 Dec 2024 16:32:01 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="JWVuuJTp"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BBB5967FD5 for ; Tue, 17 Dec 2024 16:31:56 +0100 (CET) Received: from pb-laptop.local (185.221.140.157.nat.pool.zt.hu [185.221.140.157]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 726A475A for ; Tue, 17 Dec 2024 16:31:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1734449479; bh=Kx0F2w3oJr0kLBSQxrNc07jkHZ2lfuYTkoYzo/6JJTk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=JWVuuJTp1VE8CM7WtWVmeXrQ1PqCOLPN6ucb+Cb/85FXQNAjw6ULm2vJljcjIfa7P icaVZgrG5XGmX186JJ+yUqpEBNGwnt9uTYfxo7BQ4EJoNwai4B5Ij+mk508Selu2JL pP89vTrIRJB7E/bg75r3pi8pTL03uuiiyVXousAI= From: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= To: libcamera-devel@lists.libcamera.org Subject: [libcamera-ci] [RFC PATCH v3 3/4] Add `build-package:debug` job Date: Tue, 17 Dec 2024 16:31:52 +0100 Message-ID: <20241217153153.140417-3-barnabas.pocze@ideasonboard.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20241217153153.140417-1-barnabas.pocze@ideasonboard.com> References: <20241217153153.140417-1-barnabas.pocze@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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 Reviewed-by: Laurent Pinchart --- Changes in v3: * extend `build-package:arm64` instead of creating a new job --- gitlab-ci.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) -- 2.47.1 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@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