mirror of
https://github.com/Xahau/xahaud.git
synced 2026-04-29 15:37:46 +00:00
Implements enhanced caching strategy for GitHub Actions CI workflows with efficient cache management and commit-message-driven controls. Dual-cache system: - Main branch: uses ~/.ccache-main (read-write) - Feature branches: use ~/.ccache-current (read-write) + ~/.ccache-main as secondary_storage (read-only fallback) - Feature branches only save new compilation artifacts, inheriting everything else from main branch cache - Eliminates cache duplication across branches Cache clearing via GitHub API: - New xahau-ga-clear-cache reusable action - [ci-ga-clear-cache] - Clear all caches for this job - [ci-ga-clear-cache:ccache] - Clear only if key contains "ccache" - [ci-ga-clear-cache:conan] - Clear only if key contains "conan" - [ci-ga-clear-cache:gcc Debug] - Clear if key contains both (AND logic) - Uses gh CLI with github.token (no additional credentials) - Cache deletion happens before restore step ccache improvements: - Wrapper toolchain prevents Conan from overriding ccache settings - Single cache directory approach with proper secondary_storage config - Configuration applied AFTER cache restore (prevents stale config) - Verbose build flag: [ci-ga-cmake-verbose] Conan improvements: - Configuration applied AFTER cache restore (prevents stale profile) - Removed ineffective branch comparison logic for cache saves - Fixed cache keys to use conanfile.py (not conanfile.txt) Breaking changes: - Cache version bumped to v3 (invalidates old caches) Fixes #620 (ccache caches were empty) Fixes #618 (conan not caching on feature branches)