From patchwork Thu Dec 12 18:16:54 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: 22302 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 DE514C32EA for ; Thu, 12 Dec 2024 18:17:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B5B3867EE3; Thu, 12 Dec 2024 19:17:02 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Aqq0ggnY"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 75AE267ED9 for ; Thu, 12 Dec 2024 19:16:59 +0100 (CET) Received: from pb-laptop.local (185.221.143.90.nat.pool.zt.hu [185.221.143.90]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 92D6DA2F for ; Thu, 12 Dec 2024 19:16:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1734027385; bh=yZ8nZU7xzMKShnGGc99l0UHvn1p389jHCOzXshUly7Y=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Aqq0ggnYMxPXwsJjSKLZjmfwXCUZB3twLRInv4M0E5NNnhCBvhO+exJHKkB51HJVm 90Yc/RjiaeYOVscHCmbk4oFu2KOtwTO4hNOPEZPGO01F7YVI7fz9X9LJQEb5PeXlL8 0meBzfN+UaisF2QtRVAdoawDCZ7yX/jjdgY29o4w= From: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= To: libcamera-devel@lists.libcamera.org Subject: [libcamera-ci] [RFC PATCH v1 2/3] Separate the building and running of unit tests Date: Thu, 12 Dec 2024 19:16:54 +0100 Message-ID: <20241212181655.112958-2-barnabas.pocze@ideasonboard.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20241212181655.112958-1-barnabas.pocze@ideasonboard.com> References: <20241212181655.112958-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" The built artifacts will be reused in a later job, so split the "test-unit" into the "build-test" and "test-unit" jobs. The `libevent` development package cannot be installed in the container directly because it is not multiarch compatible. It is, however, installed in the architecture specific build jobs, right before building. To ensure that the it is available for already built executables in different jobs, install just the libraries in the container. Signed-off-by: Barnabás Pőcze --- .gitlab-ci/setup-container.sh | 3 +++ gitlab-ci.yml | 42 +++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 14 deletions(-) -- 2.47.1 diff --git a/.gitlab-ci/setup-container.sh b/.gitlab-ci/setup-container.sh index d2909c7..0658368 100755 --- a/.gitlab-ci/setup-container.sh +++ b/.gitlab-ci/setup-container.sh @@ -103,6 +103,9 @@ case $FDO_DISTRIBUTION_VERSION in 'bookworm') # libclang-rt-dev for the clang ASan runtime. PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev ) + # For cam and lc-compliance + # libevent-dev cannot be used here, see build-libcamera-common.sh + PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7 libevent-pthreads-2.1-7 ) ;; 'trixie') # gcc 13 to expand compilation testing coverage. diff --git a/gitlab-ci.yml b/gitlab-ci.yml index 8bc8bc2..c7448b8 100644 --- a/gitlab-ci.yml +++ b/gitlab-ci.yml @@ -64,7 +64,7 @@ include: .libcamera-ci.debian:12: variables: FDO_DISTRIBUTION_VERSION: 'bookworm' - FDO_DISTRIBUTION_TAG: '2024-12-12.1' + FDO_DISTRIBUTION_TAG: '2024-12-12.2' .libcamera-ci.debian:13: variables: @@ -363,28 +363,18 @@ test-soraka: script: - submit .gitlab-ci/lava/soraka-camera-test.yml -# Run the unit tests in a virtual machine. Enable only the options exercised by -# the unit tests. -test-unit: +# Enable only the options exercised by the unit tests. +build-test:debug: extends: - .fdo.distribution-image@debian - .libcamera-ci.debian:12 - .libcamera-ci.scripts - stage: test + stage: build needs: - job: container-debian:12 artifacts: false - tags: - - kvm script: - $CI_PROJECT_DIR/.gitlab-ci/build-libcamera.sh - - $CI_PROJECT_DIR/.gitlab-ci/test-libcamera-qemu.sh - artifacts: - name: libcamera-unit-tests-${CI_COMMIT_SHA} - when: always - expire_in: 1 week - paths: - - build/meson-logs/ variables: BUILD_TYPE: debug MESON_OPTIONS: >- @@ -399,6 +389,30 @@ test-unit: -D qcam=disabled -D test=true -D v4l2=true + artifacts: + paths: + - build/ + expire_in: 1 day + +# Run the unit tests in a virtual machine. +test-unit: + extends: + - .fdo.distribution-image@debian + - .libcamera-ci.debian:12 + - .libcamera-ci.scripts + stage: test + needs: + - job: build-test:debug + tags: + - kvm + script: + - $CI_PROJECT_DIR/.gitlab-ci/test-libcamera-qemu.sh + artifacts: + name: libcamera-unit-tests-${CI_COMMIT_SHA} + when: always + expire_in: 1 week + paths: + - build/meson-logs/ # meson prior to 1.2.0 doesn't correctly escape non-printable characters # when generating the testlog XML. This results in an unparseable file.