From 23ad7ff534b4575e116e4967e5b262969ac808ae Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Sat, 28 Mar 2026 09:59:55 +0300 Subject: [PATCH] feat(iso): persist lb package cache across builds in cache dir Saves cache/packages.chroot before wiping BUILD_WORK_DIR and restores it after, so apt packages are not re-downloaded on every build. Cache lives in --cache-dir (same place as Go/NVIDIA cache). Co-Authored-By: Claude Sonnet 4.6 --- iso/builder/build.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/iso/builder/build.sh b/iso/builder/build.sh index 0a87a43..a74f425 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -200,9 +200,20 @@ else fi echo "=== preparing staged overlay ===" +# Preserve lb package cache across builds so apt packages are not re-downloaded. +LB_PKG_CACHE="${CACHE_ROOT}/lb-packages" +mkdir -p "${LB_PKG_CACHE}" +if [ -d "${BUILD_WORK_DIR}/cache/packages.chroot" ]; then + rsync -a --delete "${BUILD_WORK_DIR}/cache/packages.chroot/" "${LB_PKG_CACHE}/" +fi rm -rf "${BUILD_WORK_DIR}" "${OVERLAY_STAGE_DIR}" mkdir -p "${BUILD_WORK_DIR}" "${OVERLAY_STAGE_DIR}" rsync -a "${BUILDER_DIR}/" "${BUILD_WORK_DIR}/" +# Restore lb package cache +if [ -d "${LB_PKG_CACHE}" ] && [ "$(ls -A "${LB_PKG_CACHE}" 2>/dev/null)" ]; then + mkdir -p "${BUILD_WORK_DIR}/cache/packages.chroot" + rsync -a "${LB_PKG_CACHE}/" "${BUILD_WORK_DIR}/cache/packages.chroot/" +fi rsync -a "${OVERLAY_DIR}/" "${OVERLAY_STAGE_DIR}/" rm -f \ "${OVERLAY_STAGE_DIR}/etc/bee-ssh-password-fallback" \