Commit 7ad11ac
committed
circleci: fix cache save by eliminating fan-in workspace collision
Problem:
CircleCI throws 'Concurrent upstream jobs persisted the same file(s) into
the workspace' when multiple jobs try to persist the same paths
(packages/x86, build/x86, etc.) simultaneously.
Previous approach:
Separate save_cache_x86/save_cache_ppc64 jobs attached multiple upstream
workspaces and saved caches after all seeds completed. This hit fan-in
collision: multiple seeds persisted same paths.
Solution:
Each seed job saves its cache immediately after building, before
persisting to workspace. No fan-in jobs needed.
New job types:
- build_and_persist_save_cache_x86: x86-musl-cross-make only, saves musl cache
- build_and_persist_save_cache_coreboot_x86: per-fork seeds, saves fork-specific
coreboot+toolchain cache keyed with -<coreboot_dir> suffix
- build_and_persist_save_cache_ppc64: talos-2 builds toolchain+board, saves all
- build_and_save_modules_cache_x86: parallel board saves full modules cache
(used by EOL_x230-hotp-maximized - most reused fork, parallel so doesn't
delay seed chain)
Cache restore (prep_env):
Added per-fork fallback keys to match new fork-specific cache key format:
-coreboot-dasharo_msi_z790, -coreboot-dasharo_msi_z690, -coreboot-4.11,
-coreboot-25.09, -coreboot-purism, -coreboot-dasharo_v56,
-coreboot-dasharo_nv4x
Each coreboot fork now has its own cache:
- coreboot-dasharo_nv4x (novacustom-nv4x_adl)
- coreboot-dasharo_v56 (novacustom-v560tu)
- coreboot-purism (librem_14)
- coreboot-25.09 (EOL_t480-hotp-maximized)
- coreboot-4.11 (EOL_librem_l1um)
- coreboot-dasharo_msi_z690 (UNTESTED_msi_z690a_ddr4)
- coreboot-dasharo_msi_z790 (UNTESTED_msi_z790p_ddr4)
Workspace chain (linear, no collision):
prep_env -> x86-musl-cross-make -> [7 coreboot seeds] -> parallel boards
-> EOL_x230-hotp-maximized (saves modules cache)
Signed-off-by: Thierry Laurion <insurgo@riseup.net>1 parent bb47e25 commit 7ad11ac
1 file changed
Lines changed: 166 additions & 98 deletions
0 commit comments