mirror of
https://github.com/Dasharo/heads.git
synced 2026-06-13 10:16:29 -07:00
a2a027f661
Implements a new cache-based pipeline that dramatically improves build times through hierarchical caching with fork-specific caches. Key changes: - Add executor, commands, and job definitions for cache-based builds - Add create_hashes job to generate cache digest files - Add x86_blobs job for blob downloads with cache support - Add x86_musl_cross_make job for toolchain builds with cache save - Add x86_coreboot job per fork, each saves both modules and coreboot caches - Add ppc64_musl_cross_make and ppc64_coreboot jobs (decoupled from single job) - Add glossary documenting fan-in, workspace chain, cache layers Fixes for cache invalidation issues: - Remove .circleci/config.yml from cache key hashes (prevents cache invalidation on CI config changes - was causing full rebuilds on every pipeline) - Fix musl-cross-make module to auto-detect existing crossgcc using wildcard check - Exclude .circleci/config.yml from all_modules_and_patches.sha256sums and coreboot_musl-cross-make.sha256sums Test results (multiple pipeline runs): Pipeline 3789 (first run, cold cache): - x86-musl-cross-make: 30 min - ppc64-musl-cross-make: 16 min - Result: Cache saved Pipeline 3790 (second run, cache hit): - x86-musl-cross-make: 4.5 min (6.6x faster than first run) - ppc64-musl-cross-make: 4.5 min (3.5x faster than first run) - Result: Beats baseline (14.5 min) by 3.2x Pipeline 3791 (third run, cache hit): - x86-musl-cross-make: ~6 min (27s Make Board + spin up variance) - ppc64-musl-cross-make: 4.5 min - Result: Still beats baseline The wildcard fix for musl-cross-make module detects existing crossgcc from cache and skips rebuild entirely (Make Board takes only 27s vs 26 min cold). Add tests/circle-ci-simulation/ for local cache behavior verification: - test_cache_hash.sh, test_musl_skip.sh, simulate_cold_cache.sh, etc. Signed-off-by: Thierry Laurion <insurgo@riseup.net>