2 Commits

Author SHA1 Message Date
t1amak
9622ff06c8 Invalidate old external cache archives
All checks were successful
build / ARM v7 (push) Successful in 16m12s
build / i686 Linux (push) Successful in 6m10s
build / i686 Win (push) Successful in 16m12s
build / RISCV 64bit (push) Successful in 22m39s
build / x86_64 Freebsd (push) Successful in 14m26s
2026-03-19 15:45:17 +01:00
t1amak
b1e1bc2241 Cache submodule metadata alongside external sources 2026-03-19 15:44:07 +01:00

View File

@@ -51,7 +51,7 @@ jobs:
run: |
git submodule status --cached --recursive > .ci-submodules.lock
DEPENDS_KEY="$(cat contrib/depends/Makefile contrib/depends/funcs.mk contrib/depends/hosts/*.mk contrib/depends/packages/*.mk contrib/depends/toolchain.cmake.in | sha256sum | cut -d' ' -f1)"
echo "EXTERNAL_CACHE_KEY=$(sha256sum .ci-submodules.lock | cut -d' ' -f1)" >> "$GITHUB_ENV"
echo "EXTERNAL_CACHE_KEY=v2-$(sha256sum .ci-submodules.lock | cut -d' ' -f1)" >> "$GITHUB_ENV"
echo "DEPENDS_CACHE_KEY=${DEPENDS_KEY}" >> "$GITHUB_ENV"
- name: Restore external cache
@@ -60,20 +60,25 @@ jobs:
EXTERNAL_ARCHIVE="${CACHE_ROOT}/external-${EXTERNAL_CACHE_KEY}.tar.zst"
if [ -f "${EXTERNAL_ARCHIVE}" ]; then
echo "Restoring external cache from ${EXTERNAL_ARCHIVE}"
rm -rf external
mkdir -p external
rm -rf external .git/modules/external
mkdir -p external .git/modules
tar --zstd -xf "${EXTERNAL_ARCHIVE}"
echo "EXTERNAL_CACHE_HIT=true" >> "$GITHUB_ENV"
if [ -d ".git/modules/external" ]; then
echo "EXTERNAL_CACHE_HIT=true" >> "$GITHUB_ENV"
else
echo "External cache is missing .git/modules/external, ignoring it"
rm -rf external .git/modules/external
echo "EXTERNAL_CACHE_HIT=false" >> "$GITHUB_ENV"
fi
else
echo "No external cache found"
echo "EXTERNAL_CACHE_HIT=false" >> "$GITHUB_ENV"
fi
- name: Sync submodules
if: env.EXTERNAL_CACHE_HIT != 'true'
run: |
git submodule sync --recursive
git submodule update --init --recursive --depth 1
git submodule update --init --recursive --depth 1 --jobs "$(nproc)"
- name: Install dependencies
run: |
@@ -124,7 +129,7 @@ jobs:
EXTERNAL_ARCHIVE="${CACHE_ROOT}/external-${EXTERNAL_CACHE_KEY}.tar.zst"
mkdir -p "${CACHE_ROOT}"
if [ ! -f "${EXTERNAL_ARCHIVE}" ]; then
tar --zstd -cf "${EXTERNAL_ARCHIVE}" external
tar --zstd -cf "${EXTERNAL_ARCHIVE}" external .git/modules/external
fi
- name: Save depends cache