Keep build caches across runs so a rebuild compiles only what changed

Every build started from an empty container and recompiled R, JASP and 1000+
R packages, which is days of CPU on the runner. Now:

- /srv/jasp-cache on the host holds ccache and the renv package cache, linked
  into the paths jaspModuleTools::compile() hard-codes.
- RENV_PATHS_PREFIX is fixed: renv otherwise keys the cache on the archlinux
  image's build date, so any newer image started cold.
- Cached packages with unresolved sonames after an Arch update are purged, so
  only those are rebuilt.
- R packages compile without -g (the Stan/Eigen ones spend real time and GBs of
  memory on debug info), and retry passes skip modules that already built.

Claude-Session: https://claude.ai/code/session_01GGe7kUhooMFuzY6GaDb2w9
This commit is contained in:
agw
2026-09-30 19:55:00 +02:00
parent a1e65a4d47
commit 5601c0eb96
3 changed files with 81 additions and 8 deletions
+1
View File
@@ -86,6 +86,7 @@ jobs:
docker rm -f jasp-build 2>/dev/null || true
docker run --rm --name jasp-build \
-v "${WORK_DIR}:/work" \
-v /srv/jasp-cache:/cache \
-e JASP_TAG="${{ needs.check.outputs.jasp_tag }}" \
-e OUT_DIR=/work/out \
-e JOBS=5 \