Overhaul cache system

This commit is contained in:
BtbN
2023-12-21 01:31:23 +01:00
parent 75902682ba
commit 7ed76a8724
116 changed files with 179 additions and 358 deletions

4
util/clean_cache.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
set -xe
cd "$(dirname "$0")"/../.cache/downloads
find . $(printf "! -name %s " $(find . -type l -exec basename -a {} + -exec readlink {} +)) -delete

9
util/dl_functions.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
default_dl() {
echo "git-mini-clone \"$SCRIPT_REPO\" \"$SCRIPT_COMMIT\" \"$1\""
}
ffbuild_dockerdl() {
default_dl .
}

View File

@ -1,4 +1,4 @@
#!/bin/bash
set -eo pipefail
printf dlcache_
tail -n+3 Dockerfile.dl | sha256sum | cut -d' ' -f1
cd "$(dirname "$0")"
../download.sh hashonly | sha256sum | cut -d" " -f1

23
util/run_stage.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/bash
set -xe
export RAW_CFLAGS="$CFLAGS"
export RAW_CXXFLAGS="$CXXFLAGS"
export RAW_LDFLAGS="$LDFLAGS"
[[ -n "$STAGE_CFLAGS" ]] && export CFLAGS="$CFLAGS $STAGE_CFLAGS"
[[ -n "$STAGE_CXXFLAGS" ]] && export CXXFLAGS="$CXXFLAGS $STAGE_CXXFLAGS"
[[ -n "$STAGE_LDFLAGS" ]] && export LDFLAGS="$LDFLAGS $STAGE_LDFLAGS"
git config --global --add safe.directory "$PWD"
source "$1"
if [[ -z "$2" ]]; then
ffbuild_dockerbuild
else
"$2"
fi
rm -rf "$FFBUILD_PREFIX"/bin
if [[ -n "$STAGENAME" ]]; then
rm -rf "/$STAGENAME"
fi

View File

@ -37,23 +37,8 @@ BASE_IMAGE="${REGISTRY}/${REPO}/base:latest"
TARGET_IMAGE="${REGISTRY}/${REPO}/base-${TARGET}:latest"
IMAGE="${REGISTRY}/${REPO}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}:latest"
DL_IMAGE_RAW="${REGISTRY}/${REPO}/dl_cache"
if [[ -n "$REGISTRY_OVERRIDE_DL" && -n "$GITHUB_REPOSITORY_DL" ]]; then
DL_IMAGE_RAW="${REGISTRY_OVERRIDE_DL}/${GITHUB_REPOSITORY_DL}/dl_cache"
DL_IMAGE_RAW="${DL_IMAGE_RAW,,}"
fi
DL_IMAGE="${DL_IMAGE_RAW}:unset"
ffbuild_dockerdl() {
default_dl "$SELF"
}
ffbuild_dockerlayer_dl() {
to_df "COPY --from=${SELFLAYER} \$FFBUILD_DLDIR/. \$FFBUILD_DLDIR"
}
ffbuild_dockerstage() {
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw run_stage /stage.sh"
to_df "RUN --mount=src=${SELF},dst=/stage.sh run_stage /stage.sh"
}
ffbuild_dockerlayer() {