From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6990633379674718208 X-Received: by 2002:ac2:560d:: with SMTP id v13mr1048531lfd.518.1627633685351; Fri, 30 Jul 2021 01:28:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:b5c4:: with SMTP id g4ls130298ljn.7.gmail; Fri, 30 Jul 2021 01:28:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzoi4opvzF8qCH8gD9o+EOsouI69odyT7KQvu0QpOD1pGPQDuzMZM8thQ7bEJDOoHYcLx6f X-Received: by 2002:a2e:9e53:: with SMTP id g19mr981679ljk.58.1627633684391; Fri, 30 Jul 2021 01:28:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627633684; cv=none; d=google.com; s=arc-20160816; b=KRDh0fLcbfQjbHe5v4dWrU9Pg0cciCX5RL9E9D+E6yUGFdqLrt84faoCkIaHc3Vc26 l5+t7ljuTcdjW87alIQnz+gY4/YmNIE1luKsx5uS+9bGCgouhFLVm7jxXRe8D3h6Ee7P hCLR9V7QFO6TjAgK8aZlP3522O1k1Qjzl06X3wJ1cNykhAozIYRmASZ0NQIjRogGX/Vz XB7+hnhOGz0ZgqKOT8GXqtRze10NFXbcjVYaLQYpvMZP0nQZY3wF4NFEPDPOZwiRhgvL d8By0BL/yA0Qd4oNzsUb3JIlj2Xc0p0eVwakCnRk4GJB0TaKv/pJHyaYoQdKINjWr74T KRjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=NYpX5LVHPOe4jVvS0Y757tsMpmDp4sboumBX7JV10JI=; b=0JjnawH6IDhp1RuW3W9NOjDG4KcZ+ML+mJh+nm3E3u394kCojzk7vecr9vP/5GHABW CfjxVgrixhzWVxc1qADnhMrGUGMi9XtOdfQ8mmErEqnl5gb+6JNr7syScbTxokckOEFz SJoArbUDUFsL6ZhWxm/kSzCWynAyqzC7PF9nOFtpJs8edVBHiTQ83kfjge2tUfsI2XTy zDps+k4m0fMh/EaT2Pgmw/xDKo7fpF5PAeUoO4sPCH2W6tXWsdYsoBMUfGjqq8QAgbgY bCoEwclrRpcWzHfeDJEDCsN+Vaxn+/8CDa5pifls/HSGilrLP3c434xsWjV7Xj1sywOx AAng== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id x125si48413lff.9.2021.07.30.01.28.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Jul 2021 01:28:04 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-88-30-214-37.mgts.dynamic.pppoe.byfly.by [37.214.30.88] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 16U8RkvX008721 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 30 Jul 2021 10:28:02 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v10 15/17] ci_build: Migrate to Avocado Date: Fri, 30 Jul 2021 11:27:37 +0300 Message-Id: <20210730082739.15042-16-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210730082739.15042-1-amikan@ilbers.de> References: <20210730082739.15042-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: mwMJdI1FIZsD Call Avocado test cases instead of shell based. Build artifacts are placed in build directory. Signed-off-by: Anton Mikanovich --- scripts/ci_build.sh | 198 ++++----------------------- scripts/ci_build_legacy.sh | 267 +++++++++++++++++++++++++++++++++++++ 2 files changed, 293 insertions(+), 172 deletions(-) create mode 100755 scripts/ci_build_legacy.sh diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh index 49d6aa8..ffe50c6 100755 --- a/scripts/ci_build.sh +++ b/scripts/ci_build.sh @@ -14,6 +14,9 @@ export PATH=$PATH:/sbin # Go to Isar root cd "$(dirname "$0")/.." +# Get Avocado build tests path +BUILD_TEST_DIR="$(pwd)/testsuite/build_test" + # Start build in Isar tree by default BUILD_DIR=./build @@ -21,68 +24,10 @@ BUILD_DIR=./build DEPENDENCIES="umoci skopeo" for prog in ${DEPENDENCIES} ; do if [ ! -x "$(which $prog)" ] ; then - echo "missing $prog in PATH, exiting" >&2 - exit 1 + echo "missing $prog in PATH" >&2 fi done -BB_ARGS="-v" - -TARGETS_SET="\ - mc:qemuarm-stretch:isar-image-base \ - mc:qemuarm-buster:isar-image-base \ - mc:qemuarm64-stretch:isar-image-base \ - mc:qemui386-stretch:isar-image-base \ - mc:qemui386-buster:isar-image-base \ - mc:qemuamd64-stretch:isar-image-base \ - mc:qemuamd64-buster:isar-image-base \ - mc:qemuamd64-buster-tgz:isar-image-base \ - mc:qemuamd64-buster:isar-initramfs \ - mc:qemumipsel-stretch:isar-image-base \ - mc:qemumipsel-buster:isar-image-base \ - mc:nand-ubi-demo-buster:isar-image-ubi \ - mc:rpi-stretch:isar-image-base \ - mc:qemuamd64-focal:isar-image-base \ - " - # qemu-user-static of <= buster too old to build that - # mc:qemuarm64-buster:isar-image-base - # mc:qemuarm64-bullseye:isar-image-base - -TARGETS_SET_BULLSEYE="\ - mc:qemuamd64-bullseye:isar-image-base \ - mc:qemuarm-bullseye:isar-image-base \ - mc:qemui386-bullseye:isar-image-base \ - mc:qemumipsel-bullseye:isar-image-base \ -" - -TARGETS_CONTAINERS="\ - mc:container-amd64-stretch:isar-image-base \ - mc:container-amd64-buster:isar-image-base \ - mc:container-amd64-bullseye:isar-image-base \ -" - -CROSS_TARGETS_SET="\ - mc:qemuarm-stretch:isar-image-base \ - mc:qemuarm-buster:isar-image-base \ - mc:qemuarm64-stretch:isar-image-base \ - mc:qemuamd64-stretch:isar-image-base \ - mc:de0-nano-soc-buster:isar-image-base \ - mc:stm32mp15x-buster:isar-image-base \ - mc:rpi-stretch:isar-image-base \ - mc:qemuarm64-focal:isar-image-base" - -CROSS_TARGETS_SET_BULLSEYE="\ - mc:qemuarm-bullseye:isar-image-base \ -" - -REPRO_TARGETS_SET_SIGNED="\ - mc:de0-nano-soc-buster:isar-image-base \ - mc:qemuarm64-stretch:isar-image-base" - -REPRO_TARGETS_SET="\ - mc:qemuamd64-stretch:isar-image-base \ - mc:qemuarm-buster:isar-image-base" - show_help() { echo "This script builds the default Isar images." echo @@ -104,6 +49,10 @@ show_help() { echo " 3 if invalid parameters are passed." } +TAGS="full" +CROSS_BUILD="0" +QUIET="0" + # Parse command line to get user configuration while [ $# -gt 0 ] do @@ -122,16 +71,16 @@ do CROSS_BUILD="1" ;; -d|--debug) - BB_ARGS="$BB_ARGS -D" + VERBOSE="--show=app,test" ;; -f|--fast) # Start build for the reduced set of configurations # Enforce cross-compilation to speed up the build - FAST_BUILD="1" + TAGS="fast" CROSS_BUILD="1" ;; -q|--quiet) - BB_ARGS="" + QUIET="1" ;; -r|--repro) REPRO_BUILD="1" @@ -150,118 +99,23 @@ do shift done +if [ -z "$REPRO_BUILD" ]; then + TAGS="$TAGS,-repro" +fi + # the real stuff starts here, trace commands from now on set -x -# Setup build folder for the current build -if [ ! -d "$BUILD_DIR" ]; then - mkdir -p "$BUILD_DIR" -fi -source isar-init-build-env "$BUILD_DIR" - -cat >>conf/local.conf < .config/avocado/avocado.conf +[datadir.paths] +base_dir = $BUILD_DIR/ +test_dir = $BUILD_DIR/tests +data_dir = $BUILD_DIR/data +logs_dir = $BUILD_DIR/job-results EOF +export VIRTUAL_ENV="./" -if [ -n "$CROSS_BUILD" ]; then - sed -i -e 's/ISAR_CROSS_COMPILE ?= "0"/ISAR_CROSS_COMPILE ?= "1"/g' conf/local.conf -fi - -if [ -n "$REPRO_BUILD" ]; then - ISAR_TESTSUITE_GPG_PUB_KEY_FILE="$TESTSUITEDIR/base-apt/test_pub.key" - ISAR_TESTSUITE_GPG_PRIV_KEY_FILE="$TESTSUITEDIR/base-apt/test_priv.key" - export GNUPGHOME=$(mktemp -d) - gpg --import $ISAR_TESTSUITE_GPG_PUB_KEY_FILE $ISAR_TESTSUITE_GPG_PRIV_KEY_FILE - - # Enable use of signed cached base repository - echo BASE_REPO_KEY=\"file://$ISAR_TESTSUITE_GPG_PUB_KEY_FILE\" >> conf/local.conf - bitbake $BB_ARGS $REPRO_TARGETS_SET_SIGNED - while [ -e bitbake.sock ]; do sleep 1; done - sudo rm -rf tmp - sed -i -e 's/#ISAR_USE_CACHED_BASE_REPO ?= "1"/ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf - sed -i -e 's/^#BB_NO_NETWORK/BB_NO_NETWORK/g' conf/local.conf - bitbake $BB_ARGS $REPRO_TARGETS_SET_SIGNED - while [ -e bitbake.sock ]; do sleep 1; done - # Cleanup and disable use of signed cached base repository - sudo rm -rf tmp - sed -i -e 's/ISAR_USE_CACHED_BASE_REPO ?= "1"/#ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf - sed -i -e 's/^BB_NO_NETWORK/#BB_NO_NETWORK/g' conf/local.conf - sed -i -e 's/^BASE_REPO_KEY/#BASE_REPO_KEY/g' conf/local.conf - - # Enable use of unsigned cached base repository - bitbake $BB_ARGS $REPRO_TARGETS_SET - while [ -e bitbake.sock ]; do sleep 1; done - sudo rm -rf tmp - sed -i -e 's/#ISAR_USE_CACHED_BASE_REPO ?= "1"/ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf - sed -i -e 's/^#BB_NO_NETWORK/BB_NO_NETWORK/g' conf/local.conf - bitbake $BB_ARGS $REPRO_TARGETS_SET - while [ -e bitbake.sock ]; do sleep 1; done - # Cleanup and disable use of unsigned cached base repository - sudo rm -rf tmp - sed -i -e 's/ISAR_USE_CACHED_BASE_REPO ?= "1"/#ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf - sed -i -e 's/^BB_NO_NETWORK/#BB_NO_NETWORK/g' conf/local.conf -fi - -sed -i -e 's/^#BASE_REPO_FEATURES ?= "cache-deb-src"/BASE_REPO_FEATURES ?= "cache-deb-src"/g' conf/local.conf -# Start cross build for the defined set of configurations -sed -i -e 's/ISAR_CROSS_COMPILE ?= "0"/ISAR_CROSS_COMPILE ?= "1"/g' conf/local.conf -bitbake $BB_ARGS $CROSS_TARGETS_SET -while [ -e bitbake.sock ]; do sleep 1; done -if bitbake $BB_ARGS $CROSS_TARGETS_SET_BULLSEYE; then - echo "bullseye cross: PASSED" -else - echo "bullseye cross: KFAIL" -fi -# In addition test SDK creation -bitbake $BB_ARGS -c do_populate_sdk mc:qemuarm-stretch:isar-image-base -while [ -e bitbake.sock ]; do sleep 1; done - -if [ -z "$FAST_BUILD" ]; then - # Cleanup and disable cross build - sudo rm -rf tmp - sed -i -e 's/ISAR_CROSS_COMPILE ?= "1"/ISAR_CROSS_COMPILE ?= "0"/g' conf/local.conf - bitbake $BB_ARGS $TARGETS_SET - while [ -e bitbake.sock ]; do sleep 1; done - - if bitbake $BB_ARGS $TARGETS_SET_BULLSEYE; then - echo "bullseye: PASSED" - else - echo "bullseye: KFAIL" - fi - while [ -e bitbake.sock ]; do sleep 1; done -fi - -eval $(bitbake -e | grep "^LAYERDIR_core=") -eval $(bitbake -e | grep "^LAYERDIR_isar=") -cp -a "${LAYERDIR_core}/classes/dpkg-base.bbclass" "${LAYERDIR_core}/classes/dpkg-base.bbclass.ci-backup" -echo -e "do_fetch_append() {\n\n}" >> "${LAYERDIR_core}/classes/dpkg-base.bbclass" - -bitbake $BB_ARGS mc:qemuamd64-stretch:isar-image-base - -mv "${LAYERDIR_core}/classes/dpkg-base.bbclass.ci-backup" "${LAYERDIR_core}/classes/dpkg-base.bbclass" - -# Test wic --exclude-path -cp -a "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks.ci-backup" -mv ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img \ - ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img.ci-backup -sed -i -e 's/part \/ /part \/ --exclude-path usr /g' "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" - -bitbake $BB_ARGS mc:qemuamd64-stretch:isar-image-base - -mv "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks.ci-backup" "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" -mv ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img.ci-backup \ - ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img - -# Finalize with containerized images, since they remove some not-needed packages from the local.conf -sed -i -e 's/\(IMAGE_INSTALL = .*\) example-module-${KERNEL_NAME}\(.*\)/\1\2/g' conf/local.conf -sed -i -e 's/\(IMAGE_INSTALL = .*\) enable-fsck\(.*\)/\1\2/g' conf/local.conf -bitbake $BB_ARGS $TARGETS_CONTAINERS -while [ -e bitbake.sock ]; do sleep 1; done -# and SDK container image creation -echo 'SDK_FORMATS = "docker-archive"' >> conf/local.conf -bitbake $BB_ARGS -c do_populate_sdk mc:container-amd64-stretch:isar-image-base -while [ -e bitbake.sock ]; do sleep 1; done - +avocado $VERBOSE run "$BUILD_TEST_DIR/build_test.py" -t $TAGS --disable-sysinfo \ + -p build_dir="$BUILD_DIR" -p quiet=$QUIET -p cross=$CROSS_BUILD diff --git a/scripts/ci_build_legacy.sh b/scripts/ci_build_legacy.sh new file mode 100755 index 0000000..49d6aa8 --- /dev/null +++ b/scripts/ci_build_legacy.sh @@ -0,0 +1,267 @@ +#!/usr/bin/env bash +# Script for CI system build +# +# Alexander Smirnov +# Copyright (c) 2016-2018 ilbers GmbH + +set -e + +ES_BUG=3 + +# Export $PATH to use 'parted' tool +export PATH=$PATH:/sbin + +# Go to Isar root +cd "$(dirname "$0")/.." + +# Start build in Isar tree by default +BUILD_DIR=./build + +# Check dependencies +DEPENDENCIES="umoci skopeo" +for prog in ${DEPENDENCIES} ; do + if [ ! -x "$(which $prog)" ] ; then + echo "missing $prog in PATH, exiting" >&2 + exit 1 + fi +done + +BB_ARGS="-v" + +TARGETS_SET="\ + mc:qemuarm-stretch:isar-image-base \ + mc:qemuarm-buster:isar-image-base \ + mc:qemuarm64-stretch:isar-image-base \ + mc:qemui386-stretch:isar-image-base \ + mc:qemui386-buster:isar-image-base \ + mc:qemuamd64-stretch:isar-image-base \ + mc:qemuamd64-buster:isar-image-base \ + mc:qemuamd64-buster-tgz:isar-image-base \ + mc:qemuamd64-buster:isar-initramfs \ + mc:qemumipsel-stretch:isar-image-base \ + mc:qemumipsel-buster:isar-image-base \ + mc:nand-ubi-demo-buster:isar-image-ubi \ + mc:rpi-stretch:isar-image-base \ + mc:qemuamd64-focal:isar-image-base \ + " + # qemu-user-static of <= buster too old to build that + # mc:qemuarm64-buster:isar-image-base + # mc:qemuarm64-bullseye:isar-image-base + +TARGETS_SET_BULLSEYE="\ + mc:qemuamd64-bullseye:isar-image-base \ + mc:qemuarm-bullseye:isar-image-base \ + mc:qemui386-bullseye:isar-image-base \ + mc:qemumipsel-bullseye:isar-image-base \ +" + +TARGETS_CONTAINERS="\ + mc:container-amd64-stretch:isar-image-base \ + mc:container-amd64-buster:isar-image-base \ + mc:container-amd64-bullseye:isar-image-base \ +" + +CROSS_TARGETS_SET="\ + mc:qemuarm-stretch:isar-image-base \ + mc:qemuarm-buster:isar-image-base \ + mc:qemuarm64-stretch:isar-image-base \ + mc:qemuamd64-stretch:isar-image-base \ + mc:de0-nano-soc-buster:isar-image-base \ + mc:stm32mp15x-buster:isar-image-base \ + mc:rpi-stretch:isar-image-base \ + mc:qemuarm64-focal:isar-image-base" + +CROSS_TARGETS_SET_BULLSEYE="\ + mc:qemuarm-bullseye:isar-image-base \ +" + +REPRO_TARGETS_SET_SIGNED="\ + mc:de0-nano-soc-buster:isar-image-base \ + mc:qemuarm64-stretch:isar-image-base" + +REPRO_TARGETS_SET="\ + mc:qemuamd64-stretch:isar-image-base \ + mc:qemuarm-buster:isar-image-base" + +show_help() { + echo "This script builds the default Isar images." + echo + echo "Usage:" + echo " $0 [params]" + echo + echo "Parameters:" + echo " -b, --build BUILD_DIR set path to build directory. If not set," + echo " the build will be started in current path." + echo " -c, --cross enable cross-compilation." + echo " -d, --debug enable debug bitbake output." + echo " -f, --fast cross build reduced set of configurations." + echo " -q, --quiet suppress verbose bitbake output." + echo " -r, --repro enable use of cached base repository." + echo " --help display this message and exit." + echo + echo "Exit status:" + echo " 0 if OK," + echo " 3 if invalid parameters are passed." +} + +# Parse command line to get user configuration +while [ $# -gt 0 ] +do + key="$1" + + case $key in + -h|--help) + show_help + exit 0 + ;; + -b|--build) + BUILD_DIR="$2" + shift + ;; + -c|--cross) + CROSS_BUILD="1" + ;; + -d|--debug) + BB_ARGS="$BB_ARGS -D" + ;; + -f|--fast) + # Start build for the reduced set of configurations + # Enforce cross-compilation to speed up the build + FAST_BUILD="1" + CROSS_BUILD="1" + ;; + -q|--quiet) + BB_ARGS="" + ;; + -r|--repro) + REPRO_BUILD="1" + # This switch is deprecated, just here to not cause failing CI on + # legacy configs + case "$2" in + -s|--sign) shift ;; + esac + ;; + *) + echo "error: invalid parameter '$key', please try '--help' to get list of supported parameters" + exit $ES_BUG + ;; + esac + + shift +done + +# the real stuff starts here, trace commands from now on +set -x + +# Setup build folder for the current build +if [ ! -d "$BUILD_DIR" ]; then + mkdir -p "$BUILD_DIR" +fi +source isar-init-build-env "$BUILD_DIR" + +cat >>conf/local.conf <> conf/local.conf + bitbake $BB_ARGS $REPRO_TARGETS_SET_SIGNED + while [ -e bitbake.sock ]; do sleep 1; done + sudo rm -rf tmp + sed -i -e 's/#ISAR_USE_CACHED_BASE_REPO ?= "1"/ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf + sed -i -e 's/^#BB_NO_NETWORK/BB_NO_NETWORK/g' conf/local.conf + bitbake $BB_ARGS $REPRO_TARGETS_SET_SIGNED + while [ -e bitbake.sock ]; do sleep 1; done + # Cleanup and disable use of signed cached base repository + sudo rm -rf tmp + sed -i -e 's/ISAR_USE_CACHED_BASE_REPO ?= "1"/#ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf + sed -i -e 's/^BB_NO_NETWORK/#BB_NO_NETWORK/g' conf/local.conf + sed -i -e 's/^BASE_REPO_KEY/#BASE_REPO_KEY/g' conf/local.conf + + # Enable use of unsigned cached base repository + bitbake $BB_ARGS $REPRO_TARGETS_SET + while [ -e bitbake.sock ]; do sleep 1; done + sudo rm -rf tmp + sed -i -e 's/#ISAR_USE_CACHED_BASE_REPO ?= "1"/ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf + sed -i -e 's/^#BB_NO_NETWORK/BB_NO_NETWORK/g' conf/local.conf + bitbake $BB_ARGS $REPRO_TARGETS_SET + while [ -e bitbake.sock ]; do sleep 1; done + # Cleanup and disable use of unsigned cached base repository + sudo rm -rf tmp + sed -i -e 's/ISAR_USE_CACHED_BASE_REPO ?= "1"/#ISAR_USE_CACHED_BASE_REPO ?= "1"/g' conf/local.conf + sed -i -e 's/^BB_NO_NETWORK/#BB_NO_NETWORK/g' conf/local.conf +fi + +sed -i -e 's/^#BASE_REPO_FEATURES ?= "cache-deb-src"/BASE_REPO_FEATURES ?= "cache-deb-src"/g' conf/local.conf +# Start cross build for the defined set of configurations +sed -i -e 's/ISAR_CROSS_COMPILE ?= "0"/ISAR_CROSS_COMPILE ?= "1"/g' conf/local.conf +bitbake $BB_ARGS $CROSS_TARGETS_SET +while [ -e bitbake.sock ]; do sleep 1; done +if bitbake $BB_ARGS $CROSS_TARGETS_SET_BULLSEYE; then + echo "bullseye cross: PASSED" +else + echo "bullseye cross: KFAIL" +fi +# In addition test SDK creation +bitbake $BB_ARGS -c do_populate_sdk mc:qemuarm-stretch:isar-image-base +while [ -e bitbake.sock ]; do sleep 1; done + +if [ -z "$FAST_BUILD" ]; then + # Cleanup and disable cross build + sudo rm -rf tmp + sed -i -e 's/ISAR_CROSS_COMPILE ?= "1"/ISAR_CROSS_COMPILE ?= "0"/g' conf/local.conf + bitbake $BB_ARGS $TARGETS_SET + while [ -e bitbake.sock ]; do sleep 1; done + + if bitbake $BB_ARGS $TARGETS_SET_BULLSEYE; then + echo "bullseye: PASSED" + else + echo "bullseye: KFAIL" + fi + while [ -e bitbake.sock ]; do sleep 1; done +fi + +eval $(bitbake -e | grep "^LAYERDIR_core=") +eval $(bitbake -e | grep "^LAYERDIR_isar=") +cp -a "${LAYERDIR_core}/classes/dpkg-base.bbclass" "${LAYERDIR_core}/classes/dpkg-base.bbclass.ci-backup" +echo -e "do_fetch_append() {\n\n}" >> "${LAYERDIR_core}/classes/dpkg-base.bbclass" + +bitbake $BB_ARGS mc:qemuamd64-stretch:isar-image-base + +mv "${LAYERDIR_core}/classes/dpkg-base.bbclass.ci-backup" "${LAYERDIR_core}/classes/dpkg-base.bbclass" + +# Test wic --exclude-path +cp -a "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks.ci-backup" +mv ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img \ + ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img.ci-backup +sed -i -e 's/part \/ /part \/ --exclude-path usr /g' "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" + +bitbake $BB_ARGS mc:qemuamd64-stretch:isar-image-base + +mv "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks.ci-backup" "${LAYERDIR_isar}/scripts/lib/wic/canned-wks/sdimage-efi.wks" +mv ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img.ci-backup \ + ${BUILDDIR}/tmp/deploy/images/qemuamd64/isar-image-base-debian-stretch-qemuamd64.wic.img + +# Finalize with containerized images, since they remove some not-needed packages from the local.conf +sed -i -e 's/\(IMAGE_INSTALL = .*\) example-module-${KERNEL_NAME}\(.*\)/\1\2/g' conf/local.conf +sed -i -e 's/\(IMAGE_INSTALL = .*\) enable-fsck\(.*\)/\1\2/g' conf/local.conf +bitbake $BB_ARGS $TARGETS_CONTAINERS +while [ -e bitbake.sock ]; do sleep 1; done +# and SDK container image creation +echo 'SDK_FORMATS = "docker-archive"' >> conf/local.conf +bitbake $BB_ARGS -c do_populate_sdk mc:container-amd64-stretch:isar-image-base +while [ -e bitbake.sock ]; do sleep 1; done + -- 2.25.1