From 9da8426ab40316a2a23775903fd33a0451bab004 Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Wed, 29 Apr 2026 10:23:49 +0200 Subject: [PATCH] build.sh: add step to partially copy build artifacts Add an extra step to copy build artifacts after each build. Some build targets require additional layers and custom configurations, and subsequent build steps can overwrite or remove previously generated artifacts once the configuration is no longer compatible. https://onedigi.atlassian.net/browse/DEL-10026 Signed-off-by: Arturo Buzarra --- sdk/build.sh | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/sdk/build.sh b/sdk/build.sh index bcc14fc46..f777b2b91 100755 --- a/sdk/build.sh +++ b/sdk/build.sh @@ -78,31 +78,36 @@ error() { # Copy buildresults (images, licenses, packages) # # $1: destination directoy +# $2: action (full or partial) # copy_images() { + local action="$2" + # Copy individual packages only for 'release' builds, not for 'daily'. # For 'daily' builds just copy the firmware images (the buildserver # cannot afford such amount of disk space) if [ "${DY_BUILD_RELEASE}" = "true" ]; then - cp -r tmp/deploy/* "${1}"/ + cp -u -r tmp/deploy/* "${1}"/ else - cp -r tmp/deploy/images "${1}"/ + cp -u -r tmp/deploy/images "${1}"/ if [ "${DY_BUILD_TCHAIN}" = "true" ]; then if [ -d tmp/deploy/sdk ]; then - cp -r tmp/deploy/sdk "${1}"/ + cp -u -r tmp/deploy/sdk "${1}"/ fi fi fi - # Images directory post-processing - # - Jenkins artifact archiver does not copy symlinks, so remove them - # beforehand to avoid ending up with several duplicates of the same - # files. - # - Remove 'README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt' files - # - Create MD5SUMS file - find "${1}" -type l -delete - find "${1}" -type f -name 'README_-_DO_NOT_DELETE*' -delete - find "${1}" -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > "${1}"/MD5SUMS + if [ "${action}" = "full" ]; then + # Images directory post-processing + # - Jenkins artifact archiver does not copy symlinks, so remove them + # beforehand to avoid ending up with several duplicates of the same + # files. + # - Remove 'README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt' files + # - Create MD5SUMS file + find "${1}" -type l -delete + find "${1}" -type f -name 'README_-_DO_NOT_DELETE*' -delete + find "${1}" -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > "${1}"/MD5SUMS + fi } # @@ -417,6 +422,9 @@ for platform in ${DY_PLATFORMS}; do # Remove additional layers and configs after the build handle_extra_yocto_conf "$target" remove "conf/local.conf" handle_extra_yocto_layers "$target" remove + + # Partial build artifacts copy to destination path + copy_images "${_this_img_dir}" partial done # Build the toolchain for DEY images @@ -425,7 +433,9 @@ for platform in ${DY_PLATFORMS}; do time bitbake -c populate_sdk dey-toolchain fi ) - copy_images "${_this_img_dir}" + + # Full build artifacts copy to destination path + copy_images "${_this_img_dir}" full popd fi done