fix(ci): make build-all self-sufficient on agents without install-deps #96

Merged
pat-s merged 2 commits from t3code/03edfe2f into main 2026-06-18 11:27:03 +00:00

2026-06-18

fix(ci): make build-all self-sufficient on agents without install-deps
The primary build-all pass relied on build-all-versions-install-deps having
populated the per-agent cache volume, but depends_on only orders the steps and
does not co-locate them on one agent. A job landing on an agent where
install-deps never ran used a stale bincraft that resolves `platform` to a
zero-length value, breaking every metadata query ("Parameter 3 does not have
length 1") and the system-dependency install ("argument is of length zero").

- Pin bincraft @v4.2.3 in the primary build step, mirroring the R-minor pass.
- Align the R-minor pass and install-deps to @v4.2.3 so the whole pipeline uses
  one version (install-deps previously installed HEAD).
- Export OS/OS_VERSION/ARCH as runtime env vars so build-all.R's already-built
  dedup query targets the real platform instead of "-".
- Derive the unarchive codename via bincraft::set_codename(NULL) instead of the
  malformed paste(OS, OS_VERSION).
2026-06-18 13:24:22 +02:00

2026-06-17

fix: recompute package snapshot when missing from cache
The install-deps step precomputes pkgs_to_build.rds, r_minor_sensitive_pkgs.rds
and s3_cache.rds into /mnt/cache, but that cache volume is per-agent.
A build job scheduled on a fresh agent (or racing install-deps) finds the
snapshot absent and fails at readRDS.

Guard the reads in build-all.R: when any snapshot file is missing, source
packages-to-build.R and save the derived files (atomic temp+rename so a
concurrent job never reads a half-written rds). The first job on an agent
repopulates the shared cache for subsequent jobs; jobs that also miss redo
the work.
2026-06-17 19:47:28 +02:00