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

View File

@ -18,49 +18,6 @@ to_df() {
echo >> "$_of"
}
default_dl() {
to_df "RUN git-mini-clone \"$SCRIPT_REPO\" \"$SCRIPT_COMMIT\" \"$1\""
}
###
### Generate download Dockerfile
###
exec_dockerstage_dl() {
SCRIPT="$1"
(
SELF="$SCRIPT"
SELFLAYER="$(layername "$STAGE")"
source "$SCRIPT"
ffbuild_dockerdl || exit $?
TODF="Dockerfile.dl.final" ffbuild_dockerlayer_dl || exit $?
)
}
export TODF="Dockerfile.dl"
to_df "FROM ${REGISTRY}/${REPO}/base:latest AS base"
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
to_df "WORKDIR \$FFBUILD_DLDIR"
for STAGE in scripts.d/*.sh scripts.d/*/*.sh; do
to_df "FROM base AS $(layername "$STAGE")"
exec_dockerstage_dl "$STAGE"
done
to_df "FROM base AS intermediate"
cat Dockerfile.dl.final >> "$TODF"
rm Dockerfile.dl.final
to_df "FROM scratch"
to_df "COPY --from=intermediate /opt/ffdl/. /"
if [[ "$TARGET" == "dl" && "$VARIANT" == "only" ]]; then
exit 0
fi
DL_IMAGE="${DL_IMAGE_RAW}:$(./util/get_dl_cache_tag.sh)"
###
### Generate main Dockerfile
###
@ -69,11 +26,23 @@ exec_dockerstage() {
SCRIPT="$1"
(
SELF="$SCRIPT"
STAGENAME="$(basename "$SCRIPT" | sed 's/.sh$//')"
source util/dl_functions.sh
source "$SCRIPT"
ffbuild_enabled || exit 0
to_df "ENV SELF=\"$SELF\""
to_df "ENV SELF=\"$SELF\" STAGENAME=\"$STAGENAME\""
set -x
STG="$(ffbuild_dockerdl)"
if [[ -n "$STG" ]]; then
HASH="$(sha256sum <<<"$STG" | cut -d" " -f1)"
to_df "ADD .cache/downloads/${STAGENAME}_${HASH}.tar.xz /${STAGENAME}"
to_df "WORKDIR /${STAGENAME}"
fi
ffbuild_dockerstage || exit $?
)
}
@ -82,6 +51,7 @@ export TODF="Dockerfile"
to_df "FROM ${REGISTRY}/${REPO}/base-${TARGET}:latest AS base"
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
to_df "COPY util/run_stage.sh /usr/bin/run_stage"
for addin in "${ADDINS[@]}"; do
(